Spark AQE 无法帮助数据集倾斜连接

问题描述 投票:0回答:1

我在 Spark 中面临一个问题,其中 2 个倾斜的数据集需要很长时间才能连接。其中一个(或两个)数据集包含倾斜数据,并将其用作连接列。

因此我启用了 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") \
apache-spark apache-spark-sql dataset apache-spark-dataset skew
1个回答
0
投票

在 3.0 到 3.2 版本中,AQE 倾斜连接优化仍然非常初级。如果您手动更改分区数量,那么它将被跳过。同样,如果您使用缓存,大部分 AQE 将被跳过。在 3.3 中,当您使用配置手动分区时,您可以强制倾斜连接优化

spark.sql.adaptive.forceOptimizeSkewedJoin

© www.soinside.com 2019 - 2024. All rights reserved.