gpt4 book ai didi

azure - 如何防止重复条目进入Azure存储的Delta Lake

转载 作者:行者123 更新时间:2023-12-03 02:23:33 29 4
gpt4 key购买 nike

我有一个以 delta 格式存储到 Adls 中的数据框,现在当我尝试将新的更新行附加到该 delta Lake 时,有什么方法可以删除 delta 中的旧现有记录并添加新记录更新记录。

Delta 中存储的 DataFrame 模式有一个唯一的列。通过它我们可以检查记录是更新的还是新的。

最佳答案

这是 Merge command 的任务- 您定义合并条件(您的唯一列),然后定义操作。在 SQL 中,它可能如下所示(column 是您的唯一列,updates 可能是注册为临时 View 的数据框):

MERGE INTO destination
USING updates
ON destination.column = updates.column
WHEN MATCHED THEN
UPDATE SET *
WHEN NOT MATCHED
THEN INSERT *

在 Python 中,它可能如下所示:

from delta.tables import *

deltaTable = DeltaTable.forPath(spark, "/data/destination/")

deltaTable.alias("dest").merge(
updatesDF.alias("updates"),
"dest.column = updates.column") \
.whenMatchedUpdateAll() \
.whenNotMatchedInsertAll() \
.execute()

关于azure - 如何防止重复条目进入Azure存储的Delta Lake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67920919/

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