SparkSQL Shuffle 阶段分区数目如何设定?
运行上述程序时,查看WEB UI监控页面发现,某个Stage中有200个Task任务,也就是说RDD有200分区Partition。
原因:
在SparkSQL中档Job中产生Shuffle时,默认的分区数(spark.sql.shuffle.partitions)为200,在实际项目中要合理的设置。
可以设置在:
1. 配置文件:
conf/spark-defaults.conf:
spark.sql.shuffle.partitions 100
2. 在客户端提交参数中:
bin/spark-submit --conf"spark.sql.shuffle.partitions=100"
3. 在代码中可以设置:
# TODO: 设置shuffle时分区数目