我想写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()
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
在我的项目中,我的外部库是spark-assembly-1.3.1-hadoop2.6.0,如果我按'.',IDE会通知我toDF(),但它告诉我toDF()在编码时无法解析符号.对不起我toDF()在Apache Spark中找不到文档.
case class Feature(name:String, value:Double, time:String, period:String)
val RESRDD = RDD.map(tuple => {
var bson=new BasicBSONObject();
bson.put("name",name);
bson.put("value",value);
(null,bson);
})
RESRDD
.map(_._2)
.map(f => Feature(f.get("name").toString, f.get("value").toString.toDouble))
.toDF()
Run Code Online (Sandbox Code Playgroud) 我有一个 MySQL 表,其中包含一列AUTO_INCREMENT:
CREATE TABLE features (\n id INT NOT NULL AUTO_INCREMENT,\n name CHAR(30),\n value DOUBLE PRECISION\n);\nRun Code Online (Sandbox Code Playgroud)\n\n我创建了一个DataFrame并想将其插入到该表中。
case class Feature(name: String, value: Double)\nval rdd: RDD[Feature]\nval df = rdd.toDF()\ndf.write.mode(SaveMode.Append).jdbc("jdbc:mysql://...", "features", new Properties)\nRun Code Online (Sandbox Code Playgroud)\n\n我收到错误,Column count doesn\xe2\x80\x99t match value count at row 1. 如果我删除id列,它就会起作用。如何在不更改架构的情况下将此数据插入表中?