我想在两个Delta表上使用合并操作,但我不想编写复杂的插入/更新条件,所以理想情况下我想使用InsertAll()和UpdateAll()。它工作得很好,但我的源表包含一个额外的列,我不想填充到目标数据中,但我不能删除它,因为我需要它来识别要删除的记录。
我在文档中发现有一个EXCEPT关键字,我可以使用。有一个用SQL编写的示例:
MERGE INTO target t
USING source s
ON t.id = s.id
WHEN MATCHED
THEN UPDATE SET last_updated = current_date()
WHEN NOT MATCHED
THEN INSERT * EXCEPT (last_updated)
字符串
有没有办法在PySpark中使用相同的方法?
我知道我可以编写自定义的插入和更新条件,但这会导致使用InsertAll / UpdateAll()时不会发生的模式演化问题
1条答案
按热度按时间u5i3ibmn1#
不幸的是,PySpark中还没有这样的功能。但它确实是以编程方式实现的,类似于以下内容:
字符串