繁体   English   中英

从案例类中获取StructType时,给java.time.Instant提供什么类型?

[英]What type to give for java.time.Instant while fetching StructType from case class?

我有一个案例课

case class A(tm: java.time.Instant)

在尝试使用此案例类的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

谁能告诉我如何解决这个问题? 我进行了很多搜索,但找不到任何解决方法。 不,我不能在案例类中更改类型java.time.Instant

tl; dr您根本无法将java.time.*类用作架构的一部分(在结构化查询/数据集中)。

但是,您可以将数据集作为DataFrame ,并将java.time.Instant字段map到受支持的类型(例如,可使用Encoder类型)。

有关可用编码器的列表,请参见org.apache.spark.sql.SQLImplicits


不,我不能在案例类中更改类型java.time.Instant。

好了,那么您必须创建自己的case类以在Spark中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM