我正在使用pyspark更新mysql表,schema在多个3字段上有唯一的键约束。我的spark作业将一天运行3次,因为unique key的一个列部分是'date',如果一天运行作业不止一次,我将得到unique key约束冲突错误。spark有没有办法删除已有的行并插入新的行。在web上搜索解决方案,但找不到任何解决方案。提前谢谢。
zyfwsgd61#
假设正在使用df.writer,则当前没有upsert模式。
j13ufse22#
您应该更新数据库端的表。我的建议是在mysql数据库中创建一个temp表,然后spark job以覆盖模式向temp表插入数据。使用temp table为表编写mysql更新脚本。并在spark job之后添加一个job链来运行mysql更新脚本
2条答案
按热度按时间zyfwsgd61#
假设正在使用df.writer,则当前没有upsert模式。
j13ufse22#
您应该更新数据库端的表。我的建议是在mysql数据库中创建一个temp表,然后spark job以覆盖模式向temp表插入数据。使用temp table为表编写mysql更新脚本。并在spark job之后添加一个job链来运行mysql更新脚本