SparkSQL的shuffle默认分区数设置
在SparkSQL中当Job中产生Shuffle时,默认的分区数(spark.sql.shuffle.partitions)为200,在实际项目中要合理的设置,特别是本地场景,一般支持不了200个分区。
可以设置在:
- 配置文件:conf/spark-defaults.conf:spark.sql.shuffle.partitions 100
- 在客户端提交参数中:bin/spark.-submit–conf"spark.sql.shuffle.partitions=100"
- 在代码中可以设置:
spark=SparkSession.builder.
appName(“create df”).
master(“local[*]”).
config(“spark.sql.shuffle.partitions”,“2”).
getOrCreate()
通常在集群中,也是设置和CPU核心一致,或者CPU的2倍以上