使用spark更新mysql行

p8h8hvxi  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(389)

我正在使用pyspark更新mysql表,schema在多个3字段上有唯一的键约束。我的spark作业将一天运行3次,因为unique key的一个列部分是'date',如果一天运行作业不止一次,我将得到unique key约束冲突错误。spark有没有办法删除已有的行并插入新的行。在web上搜索解决方案,但找不到任何解决方案。提前谢谢。

zyfwsgd6

zyfwsgd61#

假设正在使用df.writer,则当前没有upsert模式。

j13ufse2

j13ufse22#

您应该更新数据库端的表。我的建议是在mysql数据库中创建一个temp表,然后spark job以覆盖模式向temp表插入数据。使用temp table为表编写mysql更新脚本。并在spark job之后添加一个job链来运行mysql更新脚本

相关问题