不支持 java.util.Date

Posted

技术标签:

【中文标题】不支持 java.util.Date【英文标题】:java.util.Date is not supported 【发布时间】:2015-07-09 08:29:08 【问题描述】:

我想将RDD 写成mysql,其中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()

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

【问题讨论】:

尝试转换成java.sql.Date 如果我设置f.get("time").asInstanceOf[java.sql.Date],会得到java.util.Date cannot be cast to java.sql.Date的错误 你不能直接转换它,但是一旦你有一个 sql.Date 你可以实例化一个 util.Date 从 sql.Date 字段手动读取 谢谢,它有效。 new java.sql.Date( f.get("time").asInstanceOf[java.util.Date].getTime ) 【参考方案1】:

首先将 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());

更新: AndreHolzner 建议使用java.sql.Timestamp。我还没试过,但一般TimestampDate好。

【讨论】:

我宁愿使用java.sql.Timestamp,因为java.sql.Date 在我的系统上似乎有日期粒度(即忽略一天中的时间) @AndreHolzner,谢谢你的建议。我会更新答案。

以上是关于不支持 java.util.Date的主要内容,如果未能解决你的问题,请参考以下文章

为啥我配置的PHP5不支持MySQL

为啥chrome还不支持断点续传

不支持的硬件是啥情况

不支持的 NSSortDescriptor(不支持比较器块)

javascript对象不支持的属性或方法

安装win11时遇到不支持处理器的情况?如何解决?