Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用自动增量列将DataFrame插入SQL表_Mysql_Apache Spark - Fatal编程技术网

Mysql 使用自动增量列将DataFrame插入SQL表

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(

我有一个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()
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中跟踪人。不过你可以订阅一个标签!我建议订阅!