我有一个MySQL表,其中包含一个AUTO_INCREMENT
列:
CREATE TABLE features (
id INT NOT NULL AUTO_INCREMENT,
name CHAR(30),
value DOUBLE PRECISION
);
我创建了一个DataFrame
,并希望将其插入此表中。
case class Feature(name: String, value: Double)
val rdd: RDD[Feature]
val df = rdd.toDF()
df.write.mode(SaveMode.Append).jdbc("jdbc:mysql://...", "features", new Properties)
我收到错误Column count doesn’t match value count at row 1
。如果我删除它有效的id
列。如何在不更改架构的情况下将此数据插入表中?
答案 0 :(得分:4)
您必须在DataFrame中包含id
字段,但其值将被忽略并替换为自动递增的ID。那就是:
case class Feature(id: Int, name: String, value: Double)
然后只需将id
设置为0,或在创建Feature
时设置任意数字。