首页/数据/数仓建模速查/Spark 输出文件布局控制
湖仓与引擎63 条

Spark 输出文件布局控制

控制输出文件数与大小:partitionBy 控制目录、maxRecordsPerFile 限制单文件行数、repartition 与 coalesce 调整写出并行度。

数仓建模速查数据更新于 2026-10-12
目录partitionBy
单文件maxRecordsPerFile
并行repartition/coalesce
目标单文件 128-256MB

写出布局

写出布局
spark.conf.set('spark.sql.files.maxRecordsPerFile', 2000000)

df.repartition(32, 'store_id') \
  .write.mode('overwrite') \
  .partitionBy('dt') \
  .parquet('/warehouse/dws/trade_store')
repartition 会 shuffle 但重分布均匀;coalesce 不 shuffle 但可能仍然不均。

易错点

  • 写出分区无控制,产生海量 KB 级文件

数据来源与参考

  • Apache Spark 官方文档:Configuration
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌