繁体   English   中英

Delta Table Merge Operation logs 输出的更新记录数不正确?

[英]Delta Table Merge Operation logs Output is not correct number of updated records?

我正在 spark 中对我的 delta 表执行合并操作。 我有现有的增量表,它已经有一些记录。 现在我创建了另一个 csv 文件的数据框,并在其中添加了一条新记录并更新了一条记录。 请检查下面的片段。

(df_source) 是更新的表(临时视图)

现在执行合并操作后。 此处生成的日志在更新的记录中不正确,它显示 3 条记录已更新,我只更新了一条记录。 对于插入它正确显示我有更新问题,为什么它要更新所有记录。

你能帮我理解幕后发生的事情吗?

增量表UpdatedSourceFile MergeStatment

根据您的Merge 语句updating the records if IDs in both tables are same 您将获得正确的输出,因为每次合并语句在目标表中发现与源表相同的 id,因为它正在更新该记录,因此,您将获得 3 条记录更新

根据官方文档,这种更新操作被合并的 SQL 语义认为是模棱两可的,因为不清楚应该使用哪个源记录来更新匹配的目标行

供您参考,请找到以下文档链接:-

https://docs.microsoft.com/en-us/azure/databricks/spark/latest/spark-sql/language-manual/delta-merge-into

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM