我有S3作為數據源包含樣本TPC數據集(100年10 g, g)。
我想,轉化為拚花平均文件大小約~ 256 mib。設置配置參數我可以用什麼?
我還需要要分區的數據。並在每個分區列,這些文件應基於平均尺寸進行分割。
如果我設置合並選項“df.coalesce(1)”,那麼它隻在每個分區列創建1文件。
我也試過設置參數(根據穀歌搜索)
' ' '
df.write。選項(“maxRecordsPerFile”, 6000000)
df.write.option (“parquet.block。大小”,256 * 1024 * 1024)
' ' '
但這並沒有起到任何幫助。有什麼建議嗎?
@Vikas戈埃爾:
添加更多的指針,
如果你想確保鋪文件有一個最小大小或包含最低數量的記錄,您可以使用minRecordsPerFile選項在編寫DataFrame拚花格式。下麵是您可以修改您的代碼:
#設置所需的最低數量的記錄/拚花文件min_records_per_file = 1000 #計算每個文件的最大數量的記錄基於所需的最小文件大小max_records_per_file = int ((256 * 1024 * 1024) / (df.schema.jsonSize() + 100)) #選擇之間的最大值計算所需的最小和最大records_per_file = max (min_records_per_file max_records_per_file) #寫DataFrame拚花格式df.write與指定的最低記錄/文件。選項(“minRecordsPerFile records_per_file) .parquet (“s3: / / your_bucket / parquet_output_path”)