SPARK -SQL 小文件问题

SPARK 小文件问题

  • spark -sql 小文件生成原因
  • 设置参数减少小文件的生成

spark -sql 小文件生成原因

spark -sql 提交任务默认shuffle 数量是 200
如果数据量过小会造成每一个shuffle 输出的文件数据量过小时间长了就会有大量小文件产生

设置参数减少小文件的生成

  1. spark-sql adaptive框架解决小文件问题

打开自适应框架的开关
set spark.sql.adaptive.enabled=true;
设置partition的上下限
set spark.sql.adaptive.minNumPostShufflePartitions=10;
set spark.sql.adaptive.maxNumPostShufflePartitions=2000;
设置单reduce task处理的数据大小
set spark.sql.adaptive.shuffle.targetPostShuffleInputSize=134217728;
set spark.sql.adaptive.shuffle.targetPostShuffleRowCount=10000000;

PS : 必须要触发shuffle才可以用。
2. 提交命令指定固定shuffle个数

spark-sql xxxx --conf spark.sql.shuffle.partitions=1;

参考 :

https://blog.csdn.net/qq_14950717/article/details/105303145

你可能感兴趣的:(spark,sql)