groupByKey()
groupByKey:按照key进行分组,直接进行shuffle。
reduceByKey()
reduceByKey:按照key进行聚合,在shuffle之前有combine(预聚合)
操作,返回结果是RDD[k,v].
def reduceByKey(partitioner: Partitioner, func: (V, V) => V): RDD[(K, V)] = self.withScope { combineByKeyWithClassTag[V]((v: V) => v, func, func, partitioner) }
使用建议
reduceByKey 和 groupByKey 有一定的共同之处,建议在不影响业务逻辑的情况下优先使用reduceByKey
。
如果 shuffle 之前有一个 combine(预聚合)操作,这样的 shuffle 操作的性能并不低
版权声明:《 Spark groupByKey & groupByKey 之间的区别 》为明妃原创文章,转载请注明出处!
最后编辑:2020-2-16 15:02:35