spark3.0教程:spark会导致 shuffle 的算子

repartition类的操作

一般会shuffle,因为需要在整个集群中,对之前所有的分区的数据进行随机,均匀的打乱,然后把数据放入下游新的指定数量的分区内。如:repartition、repartitionAndSortWithinPartitions、coalesce 等

byKey类的操作

要对一个key,进行聚合操作,那么肯定要保证集群中,所有节点上的,相同的key,一定是到同一个节点上进行处理。如 reduceByKey、groupByKey、sortByKey

join类的操作

两个rdd进行join,就必须将相同join key的数据,shuffle到同一个节点上,然后进行相同key的两个rdd数据的笛卡尔乘积。如 join、cogroup 等


原文出处:/show_1IX3Ff6TNhOz.html