应用 PySpark dropDuplicates 方法会打乱数据框的排序

Applying PySpark dropDuplicates method messes up the sorting of the data frame

我不确定为什么会这样,但是当我将 dropDuplicates 应用于已排序的数据框时,排序顺序被打乱了。看下面两个table的对比。

后面的table是sorted_df.show()的输出,其中排序是有序的

+----------+-----------+
|sorted_col|another_col|
+----------+-----------+
|         1|          1|
|         8|          5|
|        15|          1|
|        19|          9|
|        20|          7|
|        27|          9|
|        67|          8|
|        91|          9|
|        91|          7|
|        91|          1|
+----------+-----------+

后面的table是sorted_df.dropDuplicates().show()的输出,排序不对了,虽然是同一个数据框

+----------+-----------+
|sorted_col|another_col|
+----------+-----------+
|        27|          9|
|        67|          8|
|        15|          1|
|        91|          7|
|         1|          1|
|        91|          1|
|         8|          5|
|        91|          9|
|        20|          7|
|        19|          9|
+----------+-----------+

谁能解释为什么这种行为会持续存在,以及如何在应用 dropDuplicates 的情况下保持相同的排序顺序?

Apache Spark 版本 3.1.2

dropDuplicates涉及一个shuffle。因此,订购中断。