相同点:
两者都会根据 key 来分组
不同点:
reduceByKey: Transormation 类算子, 根据用户传入的聚合逻辑对数组内的数据进行聚合, 懒策略, 延迟计算
countByKey: Action 类算子, 不需要用户传入聚合逻辑,直接对数组内的数据进行统计记录数, 触发计算
data.countByKey () 相当于 data.reduceByKey (_+_).collectAsMap ()
countByKey 返回 Map 结构(driver 端的最终结果), reduceByKey 返回 RDD 结构(分布式数据集)