我想从数据库中的delta文件中删除数据。
例如:
PR=spark.read.format('delta').options(header=True).load('/mnt/landing/Base_Tables/EventHistory/')
PR.write.format("delta").mode('overwrite').saveAsTable('PR')
spark.sql('delete from PR where PR_Number=4600')
这是从表中删除数据,而不是从实际的增量文件中删除数据。我想删除文件中的数据,而不使用合并操作,因为连接条件不匹配。有人能帮助我解决这个问题吗?
谢啦,谢啦
4条答案
按热度按时间nfs0ujit1#
请记住:Delta中的DELETE不支持子查询。
问题链接:https://github.com/delta-io/delta/issues/730
从文档本身来看,备选方案如下
例如:
在DELTA的情况下,可写为
6za6bjd02#
您可以从Delta表www.example.com中移除与 predicate 匹配的数据https://docs.delta.io/latest/delta-update.html#delete-from-a-table
eblbsuwk3#
就像
pkbketx94#
使用Spark SQL函数可以:
在scala中: