groupBy算子
点开groupBy源码,进去看见如下图,参数是写入的函数,以及一个默认的hashpartitioner 。
这个传进去的函数,就是把传入的数据中选出一个key的这种逻辑。

再点入,以下就是详细逻辑。可以看见groupBy函数以函数的返回值作为key,他和groupByKey唯一的区别是在前面加了一部map操作,把函数作为key,把父RDD的迭代器中的元素作为value。之后在链式调用groupByKey.

groupByKey原理可以去看之前的一篇源码分析。
groupby,使用的结果是数据量增大。这里以记数为例子,他的value值不在只是单个的value值,而是把key和value共同组成value,这样比groupbykey形式下的value会多出一个key值,带来数据量的增大。

返回的形式的是一个元组,第一个元素是groupby的字段,第二个元素是一个compactbuffer迭代器

浙公网安备 33010602011771号