你好!
我運行一個簡單的讀等待查詢,我讀了三角洲的特定分區表看起來像這樣:
使用默認配置,我讀12個分區中的數據,這是講得通的超過128 mb的文件是分裂。
當我spark.sql.files配置”。maxPartitionBytes”(或“spark.files.maxPartitionBytes”)為64 mb,我做閱讀20個分區。雖然額外的分區是空的(或千字節)
我和“spark.sql.adaptive已經測試了。啟用“設置為true和錯誤的行為沒有任何變化。
任何的想法這是為什麼以及如何迫使火花在較小的分區讀嗎?
提前感謝您的幫助!
AQE隻會踢在當你實際上是在轉換(洗牌/廣播),它將試圖優化分區大小:
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提到使用的壓縮:
你好維爾納,
我在看每個部分的輸入規模的階段頁麵火花UI。就像我說的我做了一個等待操作,沒有實際寫作。我的目標在分區大小控製在閱讀的conf我玩應該做的
你好阿施施,
我隻是想知道AQE可能改變預期的行為。正如之前提到的,我的問題是控製分區大小讀不優化我的閱讀時間。
為什麼它正確地打破了180 MB的文件在2 128年限製,但不限製是64時108 MB的文件