更新时间: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