1.groupBy
1)函数签名
def groupBy[K](f: T => K)(implicit kt: ClassTag[K]): RDD[(K, Iterable[T])]
2)功能描述
函数f接收参数类型为一个表达式,将T转化为K,结果中就以表达式的结果为key,即泛型K与入参保持一致,value为输入类型的列表,即泛型T对应入参T。
其实从函数的出入参对应关系可以看出,groupby只是对输入的数据,按照一定的规则进行分组。
3)简单案例
//奇数偶数分组,返回类型RDD[(Int,Iterable[Int])],key为0,1
sc.makeRDD(List(1,2,3,4)).groupBy(_ %2 ).foreach(println)
//将大于2的数据分组,返回类型RDD[(Boolean,Iterable[Int])],key为false,true
sc.makeRDD(List(1,2,3,4)).groupBy(_ > 2 ).foreach(println)
2.groupByKey
1)函数签名
def groupByKey(): RDD[(K, Iterable[V])]
2)功能描述
对KV类型数据按照key值进行分组。返回结果为相同key为key,相同key的值形成一个列表。
3)简单案例
s