我有个案例课
case class A(tm: java.time.Instant)尝试使用以下命令获取此case类的StructType时
ScalaReflection.schemaFor[A].dataType.asInstanceOf[StructType]我得到下面的错误
[error] Exception in thread "main" java.lang.ExceptionInInitializerError
[error] at sample.spark.streaming.StructuredStreaming.main(StructuredStreaming.scala)
[error] Caused by: java.lang.UnsupportedOperationException: Schema for type java.time.Instant is not supported有人能告诉我怎么解决这个问题吗?我已经搜索了很多,但没有找到任何东西来解决这个问题。而且,我不能更改case类中的java.time.Instant类型。
发布于 2018-09-10 03:34:10
tl;dr您根本不能使用java.time.*类作为架构的一部分(在结构化查询/数据集中)。
但是,您可以将数据集作为DataFrame加载,并将java.time.Instant字段map为受支持的类型(即,Encoder可用于该类型)。
有关可用编码器的列表,请参阅org.apache.spark.sql.SQLImplicits。
和no,我不能更改
类中的java.time.Instant类型。
那么,你必须创建你自己的case类来在Spark中使用。
https://stackoverflow.com/questions/52218663
复制相似问题