我想对deltatable执行删除操作,其中要删除的键已经存在于Dataframe上。
目前我正在收集驱动程序上的Dataframe,然后运行删除操作。不过,我觉得效率很低。
(如下所示)
val keys = keysDF
.select("key")
.map(_.getLong(0))
.collect()
DeltaTable.forPath(spark, "/path/to/table")
.delete(col("key").isInCollection(keys))
有没有更有效的方法来实现这一点?我在考虑如何利用我的密钥已经分布在集群上。
1条答案
按热度按时间zpjtge221#
是的-在delta中有一个非常好的api