[英]Can we delete latest version of delta table in the delta lake?
我有一個包含 4 個版本的增量表。
描述歷史 cfm ---> 有 4 個版本。 0,1,2,3。
我想刪除版本 3 或 2。我該如何實現?
我試過
from delta.tables import *
from pyspark.sql.functions import *
deltaTable = DeltaTable.forPath(spark, "path of cfm files")
deltaTable.delete("'version' = '3'")
這不會刪除版本3。https://docs.delta.io/0.4.0/delta-update.html說
“刪除從最新版本的 Delta 表中刪除數據,但在明確清除舊版本之前不會將其從物理存儲中刪除”
如果我必須運行 vacuum 命令如何在最新日期而不是舊日期使用它們。
您需要使用 vaccum 命令來執行此操作。 但是,vaccum 的默認保留時間為 7 天,如果您在 7 天內嘗試 vaccum 任何內容,它將出錯。
我們可以通過設置繞過默認保留期檢查的 spark 配置來解決此問題。
解決方案如下:
from delta.tables import *
spark.conf.set("spark.databricks.delta.retentionDurationCheck.enabled", "false")
deltaTable = DeltaTable.forPath(spark, deltaPath)
deltaTable.vacuum(24)
*deltaPath -- 是增量表的路徑
*24 -- 表示保留版本控制的小時數,過去 24 小時后創建的任何版本都將被刪除。
希望這能回答您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.