![](/img/trans.png)
[英]performance improvement on databricks delta table while performing merge operation (upsert)
[英]Delta Table Merge Operation logs Output is not correct number of updated records?
我正在 spark 中对我的 delta 表执行合并操作。 我有现有的增量表,它已经有一些记录。 现在我创建了另一个 csv 文件的数据框,并在其中添加了一条新记录并更新了一条记录。 请检查下面的片段。
(df_source) 是更新的表(临时视图)
现在执行合并操作后。 此处生成的日志在更新的记录中不正确,它显示 3 条记录已更新,我只更新了一条记录。 对于插入它正确显示我有更新问题,为什么它要更新所有记录。
你能帮我理解幕后发生的事情吗?
根据您的Merge 语句, updating the records if IDs in both tables are same
。 您将获得正确的输出,因为每次合并语句在目标表中发现与源表相同的 id,因为它正在更新该记录,因此,您将获得 3 条记录更新。
根据官方文档,这种更新操作被合并的 SQL 语义认为是模棱两可的,因为不清楚应该使用哪个源记录来更新匹配的目标行。
供您参考,请找到以下文档链接:-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.