我最近开始研究Databricks,我一直在尝试找到一种方法在Delta表上执行merge语句,尽管使用了R api(最好是sparklyr)。最终的目的是以某种方式施加一个“duplicate”约束,如这里所述。前面提到的文档描述了Python的工作流程:
deltaTable.alias("logs").merge(
newDedupedLogs.alias("newDedupedLogs"),
"logs.uniqueId = newDedupedLogs.uniqueId") \
.whenNotMatchedInsertAll() \
.execute()
然而,我想知道是否有一个直接的方法来实现这一点,通过R。任何援助/想法的问题将不胜感激,因为我是一个新的用户(如上所述)。提前感谢!
2条答案
按热度按时间e4yzc0pl1#
提供此答案是因为您评论说没有R Delta Lake API支持。现在有一个新的R包为Delta Lake提供了R API:dlt。语法与用于Delta Lake的Python API非常相似。
在您的示例中:
ygya80vv2#
Delta Lake没有官方的R API,但可以使用SQL的MERGE INTO命令(我经常在Scala/Python中使用,因为它更容易阅读,至少对我来说是这样)。需要注册一个临时视图,其中包含要放入目标表的数据,然后运行
sql
,如下所示(字符串被拆分以便于阅读):