我需要删除具有关联 AWS s3 文件的 Delta Lake 分区,然后需要确保 AWS Athena 显示此更改。目的是因为我需要重新运行一些代码来重新填充数据。
我试过了
deltaTable = DeltaTable.forPath(spark, path)
deltaTable.delete("extract_date = '2022-03-01'") #extract date is the partition
它完成时没有错误,但 s3 上的文件仍然存在,并且即使在删除后运行 MSK REPAIR TABLE
后,Athena 仍然显示数据。有人可以建议删除分区和更新 Athena 的最佳方法吗?
最佳答案
虽然你执行了删除操作,但是数据还在,因为Delta表有历史记录,只有当你执行VACUUM operation时才会真正删除数据。并且操作时间将早于默认保留期限(7天)。如果您想更快地删除数据,则可以使用参数 RETAIN XXX HOURS 运行 VACUUM 命令,但这可能需要设置一些其他属性来强制执行 - 请参阅文档以了解更多详细信息。
关于python - 在AWS s3上删除Delta Lake分区的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71357668/