2018-10-23
閱讀量:
1105
reduceBykey與groupByKey哪個性能好?
RDD中reduceBykey與groupByKey哪個性能好,為什么?
reduceByKey:reduceByKey會在結(jié)果發(fā)送至reducer之前會對每個mapper在本地進行merge,有點類似于在MapReduce中的combiner。這樣做的好處在于,在map端進行一次reduce之后,數(shù)據(jù)量會大幅度減小,從而減小傳輸,保證reduce端能夠更快的進行結(jié)果計算。
groupByKey:groupByKey會對每一個RDD中的value值進行聚合形成一個序列(Iterator),此操作發(fā)生在reduce端,所以勢必會將所有的數(shù)據(jù)通過網(wǎng)絡(luò)進行傳輸,造成不必要的浪費。同時如果數(shù)據(jù)量十分大,可能還會造成OutOfMemoryError。
通過以上對比可以發(fā)現(xiàn)在進行大量數(shù)據(jù)的reduce操作時候建議使用reduceByKey。不僅可以提高速度,還是可以防止使用groupByKey造成的內(nèi)存溢出問題。






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
1條評論
0條評論