问题描述
与创建的数据框相比,仅需要更新现有表中已更改的行。因此,nownow,我会减去并获取更改后的行,但不确定如何合并到现有表中。
old_df = spark.sql("select * from existing table")
diff = new_df.subtract(old_df)
现在必须插入diff数据框(如果有新行)或更新现有记录
(deltaTable.alias("full_df").merge(
merge_df.alias("append_df"),"full_df.col1 = append_df.col1 OR full_df.col2 =append_df.col2")
.whenNotMatchedInsertAll()
.execute()
)
这不会更新现有记录(案例:col2值已更改; col1未更改)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)