AQE - Adaptive Query Execution
作为工程师,当我们谈论Spark/Databricks时,我们可能会忽略一些事情:
如果您使用coalesce()
AQE 来减少分区,AQE 将不会对其进行任何操作。它不会检测倾斜,不会重新分区,也不会进行优化。因为它coalesce()
不会执行完全重排(例如repartition()
),而是合并现有分区而不进行重新分配。这就是数据倾斜会在之后悄然出现coalesce()
并中断或减慢作业速度的原因。我发现文档有点不清楚。AQE 会在您执行触发repartition()
完全重排的操作后进行干预。这是正确的理解吗?文档似乎对这种情况不太清楚。