尝试写入现有的MySQL表中,可能包含一些重复的记录。
df.write
.mode(SaveMode.Append)
.jdbc(jdbcUrl, db_table, connectionProperties)
我想要的是“插入忽略”。但是似乎SaveMode.Append不能容忍重复项。 SaveMode.Ignore将不起作用,因为它将忽略整个表。有什么建议吗?
答案 0 :(得分:1)
一个众所周知的问题。
在某些较小的情况下,我需要UPSert to mySQL。
在这种情况下,我所做的是
那是我得到的最好的。还有其他方法,但这是一种这样的方法。
我说的是通用术语,因此对于mySQL,因为没有UPSert,所以我使用了这种方法:
insert into t1(a, b, c)
select d, e, f from t2
on duplicate key update b = e, c = f;
通过mutate语句。并不是很SPARK,但是好吧,我们有时不得不做!