取消
顯示的結果
而不是尋找
你的意思是:

三角洲表優化錯誤

DL27
新的貢獻者三世

我已經開始得到一個錯誤消息,當運行以下命令:優化-

.executeCompaction deltaTable.optimize () ()

錯誤:-

java . util . concurrent。ExecutionException: . lang。IllegalStateException:優化後的記錄數量改變。NumRecordsCheckInfo(優化,394,1058,2554337689,2600474509,0,0,地圖(謂詞- >“[]”,zOrderBy - >“[]”, batchId - >“0”,汽車- > false))

的原因是什麼?它已經運行好幾個月。

這是使用pyspark 11.3運行時。

3回複3

Debayan
尊敬的貢獻者三世
尊敬的貢獻者三世

你好,是這樣的命令必須改變。

https://docs.delta.io/latest/delta-utility.html

另外,請再核對

圖像參考:https://docs.m.eheci.com/sql/language-manual/delta-optimize.html

另外,請標記@Debayan與你的下一個反應會通知我。謝謝你!

匿名
不適用

@Dean色鬼:

錯誤消息表明,增量表中的記錄的數量優化()命令運行後改變了。優化()命令用於提高三角洲表通過移除小文件的性能和壓實的,它可以提高查詢性能,降低存儲成本。然而,如果有並發寫操作發生在優化()命令運行時,它可以導致記錄的數量變化,從而導致這個錯誤。

為了解決這個問題,你可能想要考慮以下步驟:

  1. 檢查並發寫操作:檢查是否有任何其他進程或工作寫入三角洲表優化()命令運行時。如果有,您可能需要暫時停止這些操作,以避免衝突。
  2. 重新優化()命令:如果你確定沒有並發寫操作,你可以嚐試重新運行優化()命令,看是否存在問題。有時候,錯誤消息可能是由於一個瞬態問題時解決命令重試。
  3. 使用不同的優化()配置:你可以試著使用不同的配置優化()命令,比如增加minFileSize或maxFileSize參數。這可能有助於減少衝突的可能性與並發寫操作。
  4. 執行一個完整的壓實:如果問題持續下去,你可以試著運行一個完整的壓實而不是優化的壓實。這將所有三角洲表文件合並為一個文件,可以減少衝突的可能性與並發寫操作。然而,一個完整的壓實可以更多的資源密集型和可能需要更長的時間來完成。

DL27
新的貢獻者三世

我如何執行一個完整的壓實?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map