【发布时间】:2016-09-22 11:01:40
【问题描述】:
我想使用 parquet 格式将 DStream 保存到 HDFS 中。问题是我的案例类使用 joda.DateTime 而 Spark SQL 不支持这个。例如:
case class Log (timestamp: DateTime, ...dozen of other fields here...)
但我收到错误:java.lang.UnsupportedOperationException:尝试将 RDD 转换为 DF 时不支持 org.joda.time.DateTime 类型的架构:
def output(logdstream: DStream[Log]) {
logdstream.foreachRDD(elem => {
val df = elem.toDF()
df.saveAsParquet(...)
});
}
我的模型很复杂并且有很多字段,所以我不想编写不同的案例类来摆脱 joda.DateTime。另一种选择是直接从 json 保存到镶木地板,但这并不理想。有没有一种简单的方法可以将 joda.DateTime 自动转换为 sql.Timestamp 以与 spark 一起使用(转换为 Spark 的数据帧)。
谢谢。
【问题讨论】:
标签: apache-spark jodatime spark-dataframe parquet