更新时间:2024-11-29 GMT+08:00
配置小文件自动合并
配置场景
小文件自动合并特性开启后,Spark将数据先写入临时目录,再去检测每个分区的平均文件大小是否小于16MB(默认值)。如果发现平均文件大小小于16MB,则认为分区下有小文件,Spark会启动一个Job合并这些小文件,并将合并后的大文件写入到最终的表目录下。
使用约束
- 写入表的类型为:Hive、Datasource
- 支持的数据格式:parquet、orc
配置参数
在Spark客户端的“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”配置文件中进行设置,修改如下参数:
参数 |
说明 |
默认值 |
---|---|---|
spark.sql.mergeSmallFiles.enabled |
设置为true,Spark写入目标表时会判断是否写入了小文件,如果发现有小文件,则会启动合并小文件的job。 |
false |
spark.sql.mergeSmallFiles.threshold.avgSize |
如果某个分区的平均文件大小小于该值,则启动小文件合并。 |
16MB |
spark.sql.mergeSmallFiles.maxSizePerTask |
合并后的每个文件大小目标大小。 |
256MB |
spark.sql.mergeSmallFiles.moveParallelism |
当不需要合并小文件后时,将临时文件移动到最终目录的并行度。 |
10000 |
父主题: 场景化参数