我想填充包含一些列的增量表,其中一列用作分区,另一列是“主键”(基因)。因此,Dependend必须根据它记录的数据进行插入、更新或删除,如下所示:
增量表:
包含必须插入增量表中的值的数据框表:
预期增量表:
你有想法吗?
我想过使用合并命令,但没有解决删除条件。另一种解决方案是删除之前的记录,然后对插入和更新应用合并,但是这样的话,是否有必要在同一个事务中应用它们呢?还有其他的孤独吗?
最佳答案
MERGE
语句 ( doc ) 中新的 WHEN NOT MATCHED BY SOURCE
子句支持此类功能。它刚刚作为 Databricks Runtime 12.1 的一部分在 Databricks 上发布。并在即将发布的 OSS Delta - 2.3.0 版本中进行削减(请参阅相应的 PR1 、 PR2 )。
如果您迫不及待地等待新版本,那么您可以继续仅对现有值使用常规合并(WHEN MATCHED
,不带 WHEN NOT MATCHED
),并且然后将表与传入数据进行右连接,过滤掉不匹配的数据,并进行删除操作。
关于pyspark - 如何合并涉及插入、更新和删除的增量表中的数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75240338/