使用SPARK更新mysql行

时间:2018-09-27 12:11:50

标签: mysql pyspark pyspark-sql

使用pyspark我正在更新mysql表,模式在多个3个字段上具有唯一的键约束。 我的spark作业每天将运行3次,因为唯一键的列部分之一是“日期”,如果一天运行一次以上,则会收到违反唯一键约束的错误。 从spark出发,有没有一种方法可以删除已经存在的行并插入新行。在网上搜索解决方案,但找不到任何解决方案。 预先感谢。

2 个答案:

答案 0 :(得分:1)

您应该在数据库端更新表。我的建议是在Mysql db中创建一个临时表,并通过覆盖模式将spark作业插入到临时表中。使用临时表为该表编写一个Mysql更新脚本。并在Spark作业后添加作业链以运行Mysql更新脚本<​​/ p>

答案 1 :(得分:0)

假设使用df.writer,目前没有UPSert模式。