Spark AQE对数据集倾斜连接没有帮助

k5hmc34c  于 2023-10-23  发布在  Apache
关注(0)|答案(1)|浏览(166)

我在spark中遇到了一个问题,两个数据集的连接时间太长了。其中一个(或两个)数据集中有倾斜的数据,它被用作连接列。
所以我启用了spark AQE,希望它能帮助我处理倾斜的数据集连接。然而,当我检查SQL查询指标时,他们并没有建议AQE帮助我处理倾斜,并且一些分区仍然很大。当我检查阶段状态时,我发现一些长时间运行的任务需要几个小时才能完成。

我对AQE的行为感到非常困惑,并且非常惊讶地发现它似乎没有帮助。有人能指出这里有什么问题吗?或者我错过了什么?
顺便说一句,这里是我的一些Spark配置:

.config("spark.sql.adaptive.enabled", "true") \
.config("spark.sql.adaptive.skewJoin.enabled", "true") \
.config("spark.executor.memory", "32g") \
.config("spark.executor.memoryOverhead", "8g") \
.config("spark.sql.shuffle.partitions", "2000") \
xyhw6mcr

xyhw6mcr1#

在3.0到3.2版本中,AQE斜连接优化仍然是非常初级的。如果您手动更改分区的数量,那么它将被跳过。同样,如果您使用缓存,大部分AQE将被跳过。在3.3中,您可以在使用config spark.sql.adaptive.forceOptimizeSkewedJoin手动分区时强制进行斜连接优化。

相关问题