不支持java.util.Date

yey*_*ilk 16 java apache-spark

我想写RDDMYSQL,其中RDD包含java.util.Date的类型.

rdd.map(f=> FeatureData(
           f.get("name").toString, 
           f.get("value").toString.toDouble, 
           f.get("time").asInstanceOf[Date],
           f.get("period").toString))
    .toDF()
Run Code Online (Sandbox Code Playgroud)

在这里RDD,time's值类型的键也是java.util.Date,它只是得到错误 [See nested exception: java.lang.UnsupportedOperationException: Schema for type java.util.Date is not supported

Saq*_*wan 31

首先将java.util.Date转换为java.sql.Date.然后使用java.sql.Date的数据运行你的sql .示例代码:

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
Run Code Online (Sandbox Code Playgroud)

更新: AndreHolzner建议使用java.sql.Timestamp.我还没试过,但总的来说TimestampDate.

  • 我宁愿使用`java.sql.Timestamp`,因为`java.sql.Date` 在我的系统上似乎有日期粒度(即忽略一天中的时间) (2认同)