有以下几个关于Spark Windowing重新 Shuffle 的问题:
1.如果一个DataFrame已经在一个列(比如“id")上进行了重新分区,并且如果同一列在Window.partitionBy(“id”)中使用,是否会有重新 Shuffle 发生?我们如何才能避免在这里重新 Shuffle ?
1.如果我们有2个Windows,请说Window.partitionBy(“id","name”).orderBy(“salary”)和Window.partitionBy(“id","age”).orderBy(“salary”)。其中第一个分区列是相同的。在第二种情况下,希望不会有任何重新 Shuffle ,但排序只发生在partitionBy和orderBy中的列上,或者DataFrame分区中的所有列将再次排序?
1条答案
按热度按时间okxuctiv1#
使用
.explain()
并查看physical plan
。Q1:无明显 Shuffle 。
Q2: Shuffle 明显。站在理性,因为复杂分裂出来,不能并行做,我怀疑。
使用这个: