我有一個帶有 2 個鑲木地板檔案的冰山表,在 s3 中存盤 4 行我嘗試了以下命令:
val tables = new HadoopTables(conf);
val table = tables.load("s3://iceberg-tests-storage/data/db/test5");
SparkActions.get(spark).rewriteDataFiles(table).option("target-file-size-bytes", "52428800").execute();
但沒有任何改變。我做錯了什么?
uj5u.com熱心網友回復:
幾點注意事項:
- Iceberg 默認情況下不會壓縮檔案,除非每個檔案組和每個磁區可以壓縮最少數量的小檔案。默認值為 5。
- 這可以通過
min-input-files作為選項進行配置。
- 這可以通過
- Iceberg 不會跨磁區壓縮檔案,因為一個檔案必須 1:1 映射到一組磁區值。
- 舉個例子:對于一個由 col1 和 col2 磁區的表,col1=A 和 col2=1 的檔案不能與 col1=A 和 col2=4 的檔案一起壓縮
在您的情況下,如果您設定min-input-files為 2,則如果檔案屬于同一磁區或表未磁區,則應將檔案壓縮在一起。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481496.html
上一篇:Pyspark中的比較資料框
下一篇:Spark:將字串轉換為日期
