gpt4 book ai didi

apache-spark - Databricks 无法执行合并,因为多个源行匹配并试图修改增量表中的同一目标行

转载 作者:行者123 更新时间:2023-12-05 04:27:28 25 4
gpt4 key购买 nike

我正在尝试与 Databricks 进行合并,但出现错误:

UnsupportedOperationException: Cannot perform Merge as multiple source rows matched and attempted to modify the same
target row in the Delta table in possibly conflicting ways.

我在 SO 上多次看到这个问题,我知道如果源数据集的多行匹配并且合并尝试更新目标 Delta 表的相同行,合并操作可能会失败。

用简单的英语来说,当源表有多个行试图更新同一目标行时,就会发生这种情况。如果更新表具有相同 ID 的记录,则可能会发生这种情况。就我而言,我认为这不适用。

有人可以看看我的代码,如果他们能发现任何明显的地方,请告诉我

(deltadf.alias("t")
.merge(
df.alias("s"),
"s.primary_key_hash = t.primary_key_hash")
.whenMatchedUpdateAll("s.change_key_hash <> t.change_key_hash")
.whenNotMatchedInsertAll()
.execute()
)

样本deltadf

enter image description here

样本 df

enter image description here

请原谅图片..我正在努力使用标记语言添加数据

最佳答案

我有同样的错误,并发现问题是它第一次起作用。我的数据源确实在我的 primary_key 上有重复项,所以我第二次运行代码时出现了多行错误。一旦我清除了命运表和源 df,它每次都有效。

关于apache-spark - Databricks 无法执行合并,因为多个源行匹配并试图修改增量表中的同一目标行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72800950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com