在S3中存儲的三角洲表上的真空命令

本文解釋了您在運行時可能會遇到的場景真空在存儲在S3存儲桶中的三角洲表上的命令。

問題

您可以將Delta表存儲在DBFS或S3中。保存到S3時,應使用S3A而不是使用S3提供表的位置。如果使用S3而不是S3A創建表,則真空命令將在以下錯誤中失敗:

SQL語句中的錯誤:Sparkexception:由於階段失敗而流產的工作:第343.0階段的任務6失敗了4次,最新失敗:丟失任務6.3階段343.0(TID 4130677,10.25.122.176,executor 13):斷言失敗:這裏不應該有任何絕對刪除途徑

解決方案

該錯誤不再發生在Databricks運行時5.0中。如果您遇到了大量表的錯誤,請創建一個帶有數據鏈球支持的機票,以更新元數據。快速的方法可以是:

  1. 創建一個新表格,並使用S3A提供表位置。
  2. 編寫一個插入查詢,以將數據從舊表插入新表。
  3. 放下舊桌子。