Mysql 使用自动增量列将DataFrame插入SQL表
我有一个MySQL表,其中包含一个列,该列是Mysql 使用自动增量列将DataFrame插入SQL表,mysql,apache-spark,Mysql,Apache Spark,我有一个MySQL表,其中包含一个列,该列是自动增量的: 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(
自动增量的
:
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)
我得到错误,
列计数与第1行的值计数不匹配
。如果我删除id
列,它会工作。如何在不更改架构的情况下将此数据插入表中?您必须在数据框中包含一个id
字段,但其值将被忽略并替换为自动递增的id。即:
case class Feature(id: Int, name: String, value: Double)
然后只需将
id
设置为0,或在创建功能时设置任何数字
很抱歉,这不是一个直接的答案,但我几乎不理解这个问题。希望能有帮助。我已经知道为什么会发生错误,但我仍然不知道该怎么做。下一步我会尽力解释清楚。在我的表中,我有5列,其中包括id
column。但是,在我的DataFrame
中,我只有4列,而我的DataFrame
将映射MySQL表
,只映射前4列,剩下的第5列不映射。使用SQL
,我知道如何插入,但使用spark,我甚至不知道如何搜索api。我希望你能理解,或者如果你懂中文,我可以给你发电子邮件。因此,问题基本上是如何在自动增量
字段中使用insertIntoJDBC
。尝试为id
插入0。也许数据库会把它整理出来。我知道在这个问题下再问一个不相关的问题是不好的,但是你能告诉我怎么跟着你吗?我不知道如何在StackOverflow中跟踪人我认为你无法在StackOverflow中跟踪人。不过你可以订阅一个标签!我建议订阅!