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

(解決)maxPartitionBytes忽略?

pantelis_mare
貢獻者三世

你好!

我運行一個簡單的讀等待查詢,我讀了三角洲的特定分區表看起來像這樣:

圖像使用默認配置,我讀12個分區中的數據,這是講得通的超過128 mb的文件是分裂。

當我spark.sql.files配置”。maxPartitionBytes”(或“spark.files.maxPartitionBytes”)為64 mb,我做閱讀20個分區。雖然額外的分區是空的(或千字節)

我和“spark.sql.adaptive已經測試了。啟用“設置為true和錯誤的行為沒有任何變化。

任何的想法這是為什麼以及如何迫使火花在較小的分區讀嗎?

提前感謝您的幫助!

1接受解決方案

接受的解決方案

werners1
尊敬的貢獻者三世

AQE隻會踢在當你實際上是在轉換(洗牌/廣播),它將試圖優化分區大小:

https://docs.microsoft.com/en-us/azure/databricks/spark/latest/spark-sql/aqe dynamically-coalesce-pa……

read-partitionsize確實由maxPartitionBytes定義的。

現在,我記得一個主題在stackoverflow有人問類似的問題。

和他們提到壓縮編碼也很重要。

你使用時髦的壓縮。如果是這樣的話,行組定義的分區大小可能拚花的大小文件。

https://stackoverflow.com/questions/32382352/is-snappy-splittable-or-not-splittable

http://boristyukin.com/is-snappy-compressed-parquet-file-splittable/

大衛也Vrba提到使用的壓縮:

https://stackoverflow.com/questions/62648621/spark-sql-files-maxpartitionbytes-not-limiting-max-size..。

在原帖子查看解決方案

7回複7

werners1
尊敬的貢獻者三世

你怎麼確定分區的數量看,這些分區的大小?

我問的原因是如果你首先讀取數據,然後立即寫另一個δ表,還有汽車優化三角洲湖上,試圖編寫128 mb的文件。

(spark.databricks.delta.autoCompact.maxFileSize)

你好維爾納,

我在看每個部分的輸入規模的階段頁麵火花UI。就像我說的我做了一個等待操作,沒有實際寫作。我的目標在分區大小控製在閱讀的conf我玩應該做的

ashish1
新的貢獻者三世

AQE並不影響閱讀時間分區同時洗牌。將是更好的運行優化的三角洲湖緊湊大約1 GB的文件,它將提供更好的閱讀時間性能。

你好阿施施,

我隻是想知道AQE可能改變預期的行為。正如之前提到的,我的問題是控製分區大小讀不優化我的閱讀時間。

為什麼它正確地打破了180 MB的文件在2 128年限製,但不限製是64時108 MB的文件

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

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

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

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

Baidu
map