簡體   English   中英

我們可以刪除增量湖中最新版本的增量表嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM