JavaSpark-MySQL使用外键约束插入数据
我正在尝试使用spark dataset/rdd将数据插入MYSQL数据库 表A:JavaSpark-MySQL使用外键约束插入数据,mysql,apache-spark,dataframe,dataset,Mysql,Apache Spark,Dataframe,Dataset,我正在尝试使用spark dataset/rdd将数据插入MYSQL数据库 表A: +------+------+------------------------+ | Col | type | desc | +------+------+------------------------+ | id | int | primary key | | name | text | some name | | b
+------+------+------------------------+
| Col | type | desc |
+------+------+------------------------+
| id | int | primary key |
| name | text | some name |
| b_id | int | foreign key to table B |
+------+------+------------------------+
表B:
+------+------+-----------------------------+
| Col | type | desc |
+------+------+-----------------------------+
| id | int | primary key, Auto Increment |
| name | text | some name |
+------+------+-----------------------------+
我正在从CSV文件中读取数据,并试图将数据写入表A,但无法插入到A中。我们需要表B中的一些id(外键)。如果我创建一个bean a并将bean B作为a的一部分。每当我插入a时,这会自动创建B吗?相反:a应该是B的一部分,因为B是父级,a是子级。您应该先将数据导入B,然后再导入A。@Shadow“您应该先将数据导入B,然后再导入A”-您能描述一下如何导入吗?由于
DataFrameWriter#jdbc
和DataFrameWriter#save
是动作,而不是转换,我们无法获得新插入行的id——那么在插入一个DF的B行之后,我们如何获得它们,以便我们可以插入a行及其相应的B#id
值?我在这里写了一个类似的问题:@et_l不知道,我只知道mysql,但不知道java。不过,我可以识别外键,反之亦然:a应该是B的一部分,因为B是父母,a是孩子。您应该先将数据导入B,然后再导入A。@Shadow“您应该先将数据导入B,然后再导入A”-您能描述一下如何导入吗?由于DataFrameWriter#jdbc
和DataFrameWriter#save
是动作,而不是转换,我们无法获得新插入行的id——那么在插入一个DF的B行之后,我们如何获得它们,以便我们可以插入a行及其相应的B#id
值?我在这里写了一个类似的问题:@et_l不知道,我只知道mysql,但不知道java。不过,我能识别外键。