配置SparkSQL的分块个数
配置场景
SparkSQL在进行shuffle操作时默认的分块数为200。在数据量特别大的场景下,使用默认的分块数就会造成单个数据块过大。如果一个任务产生的单个shuffle数据块大于2G,该数据块在被fetch的时候还会报类似错误:
Adjusted frame length exceeds 2147483647: 2717729270 - discarded
例如,SparkSQL运行TPCDS 500G的测试时,使用默认配置出现错误。所以当数据量较大时需要适当的调整该参数。
配置参数
参数入口:
在Manager系统中,选择“集群 > 服务 > Spark2x > 配置”,单击“全部配置”。在搜索框中输入参数名称。
参数 |
描述 |
默认值 |
---|---|---|
spark.sql.shuffle.partitions |
SparkSQL在进行shuffle操作时默认的分块数。 |
200 |