groupByKey、reduceByKey、aggregate

2020-05-23  本文已影响0人  zoran_af7d

三者都可以做分组操作。reduceByKey、aggregateByKey不但分组还做了聚合操作

groupByKey直接进行shuffle操作,数据量大的时候速度较慢。

reduceByKey、aggregateByKey在shuffle之前可能会先进行聚合,聚合后的数据再进行shuffle,这样一来进行shuffle的数据会变少,速度会快。

reduceByKey、aggregateByKey的区别是前者不同partition以及partition之间的聚合操作是一样的,而后者可以指定两种操作来对应于partition之间和partition内部不同的聚合操作,并且aggregateByKey可以指定初始值。

在aggregateByKey中,如果两种操作是一样的,可以使用foldByKey来代替,并且只传一个操作函数。foldBykey和reudceBykey的区别是前者可以指定一个初始值。

上一篇下一篇

猜你喜欢

热点阅读