combineByKey算子是Spark中一个非常高级的算子,很多我们常用的算子底层都是封装的他
combineByKey: 的主要作用是将同一个key的数据就行聚合,其实就是对相同的K,不同的V进行一顿操作让他变成新的V
但是combineByKey比较特殊的地方是,他的三个主要函数的含义。
combineByKey有三个主要的函数分别是:
createCombiner 对于当前KV中的V进行改造生成新的V,相当于mergeValue之前你有一次修改Value的机会
mergeValue 在同一分片中,相同的Key进行合并的时候,
mergeCombiner 将不同分片中的同一个key的combiner进行合并
这里我们需要注意的是这与其他我们常用的算子不一样的是,这里涉及到了分片,先同分片在不同的分片合并
代码如下,求一个key的平均值以及value出现的次数
val conf = new SparkConf().setAppName("SearchSessionAnalysis").setMaster("local[4]")
val sc: SparkContext = new</