Serverless Spark 提供 Hive 表自动化小文件合并功能,支持以下两种合并策略配置:
通过控制 shuffle partition 的数量来控制最后写出的文件数量。
-- 必填参数
set spark.merge.files.enabled=true;
-- 可选参数
set spark.merge.files.number=1;
借助 Spark AQE 规则对 shuffle 分区读取的数据量大小进行控制。鉴于文件大小还与压缩格式及其压缩率有关,最终生成的文件大小相较于预先设定的参数值,会出现一定程度的浮动。
-- 必填参数
set spark.merge.files.enabled=true;
set spark.merge.files.byBytes.enabled=true;
-- 可选参数
set spark.merge.files.byBytes.fileBytes=536870912;
set spark.merge.files.byBytes.compressionRatio=1;
-- fileBytes * compressionRatio就是预估的文件大小
注意