spark (算子 ) groupBykey+Map 和 reduceBykey 的区别
1)面试题:groupByKey+map和reduceByKey都能实现分布式分组聚合,有什么区别?
- groupByKey没有Map端聚合的操作,只做分组,必须等分区结束才能实现,最终map需要做整体聚合
- reduceByKey是有Map端聚合操作,先分区内部聚合,再做分区间的聚合
- reduceByKey直接分组聚合的性能要高于先做groupByKey再做聚合的方式
2)什么叫做map端的聚合? --类似于MapTask中的Combiner
combiner --> map端的reduce操作
container --> yarn中运行任务时的资源管理包
executor --> spark的app应用在运行时,会产生两个进程,一个Driver,一类executor(执行spark中的job任务的)
Combiner --> 运行在map端的Reduce