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

達美航空合並文件大小控製

pantelis_mare
貢獻者三世

你好社區!

我有一個相當奇怪的問題在三角洲合並寫大文件(~ 1 gb)減緩我的管道。這裏有一些背景:

我有一個dataframe帳目更新幾個過去的日期。當前和最後一天包含大量的行(> 95%),其餘分布在舊天(約100個獨特的日期)。我的目標dataframe分區的日期。

我的問題是,當合並操作正在寫文件我最後寫2 - 3文件最大的約會分區,結果2 - 3文件大約1 gb。因此我的整個管道被這些文件的編寫,需要更長的時間比其他的。

我玩所有明顯的配置,如:

delta.tuneFileSizesForRewrites

delta.targetFileSize

delta.merge.enableLowShuffle

一切似乎都被忽略和文件保持在這種規模。

注意:DBR 10.0 / delta.optimizedWrites上運行。啟用設置為真

有什麼我錯過什麼?

提前謝謝你!

6個回答6

werners1
尊敬的貢獻者三世

表的大小可能是+ 10 tb ?

如果使用自動調諧,三角洲湖使用基於表大小的文件大小:

https://docs.microsoft.com/en-us/azure/databricks/delta/optimizations/file-mgmt autotune-based-on-ta……

然而,targetfilesize應該禁用自動調諧……奇怪。

我使用以下設置(創建文件大約256 mb):

火花。sql(“設置spark.databricks.delta.autoCompact.enabled = true”)

火花。sql(“設置spark.databricks.delta.optimizeWrite.enabled = true”)

火花。sql(“設置spark.databricks.delta.merge.enableLowShuffle = true”)

Hubert_Dudek1
尊敬的貢獻者三世

三角洲事務性文件(保存增量更改在json和快照在拚花)通常當我想表現我更喜歡用拚花。

Sandeep
貢獻者三世

@Pantelis Maroudis,你能嚐試設置spark.databricks.delta.optimize.maxFileSize嗎?

pantelis_mare
貢獻者三世

你好,

花了一些時間調查和嚐試@Sandeep Chandran的想法。

我跑了4種不同的配置。我有緩存更新表,每次我向目標表上運行恢複我們的數據合並是相同的。

這是我最大的分區上的文件由每次運行是一個阻塞階段:

文件1:運行

spark.databricks.delta.tuneFileSizesForRewrites:假

我想它使用文件調表的大小

run2:

spark.databricks.delta.tuneFileSizesForRewrites:假

spark.databricks.delta.optimize.maxFileSize: 268435456

run3:

spark.databricks.delta.tuneFileSizesForRewrites:假

delta.targetFileSize= 268435456 property on target table

run4:

spark.databricks.delta.tuneFileSizesForRewrites:真

作為額外信息記錄每個分區,就在這裏。如你所見我dataframe非常不平衡的。

數

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

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

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

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

Baidu
map