更新时间:2022-09-30 GMT+08:00

配置SparkSQL的分块个数

配置场景

SparkSQL在进行shuffle操作时默认的分块数为200。在数据量特别大的场景下,使用默认的分块数就会造成单个数据块过大。如果一个任务产生的单个shuffle数据块大于2G,该数据块在被fetch的时候还会报类似错误:

Adjusted frame length exceeds 2147483647: 2717729270 - discarded

例如,SparkSQL运行TPCDS 500G的测试时,使用默认配置出现错误。所以当数据量较大时需要适当的调整该参数。

配置参数

参数入口:

在Manager系统中,选择集群 > 待操作集群的名称 > 服务 > Spark2x > 配置,单击“全部配置”。在搜索框中输入参数名称。

表1 参数介绍

参数

描述

默认值

spark.sql.shuffle.partitions

SparkSQL在进行shuffle操作时默认的分块数。

200