SparkRDD算子--groupBy算子
程序员文章站
2022-06-02 11:22:38
...
语法
val newRdd = olodRdd.groupBy(func)
源码
def groupBy[K](f : scala.Function1[T, K])(implicit kt : scala.reflect.ClassTag[K]) : org.apache.spark.rdd.RDD[scala.Tuple2[K, scala.Iterable[T]]] = { /* compiled code */ }
作用
分组,按照传入函数的返回值进行分组。将相同的key对应的值放入一个迭代器。
例子
package com.day1
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object oper {
def main(args: Array[String]): Unit = {
val config:SparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount")
// 创建上下文对象
val sc = new SparkContext(config)
// groupBy算子
val listRdd:RDD[Int] = sc.makeRDD(1 to 10)
val groupRdd = listRdd.groupBy(_%2)
groupRdd.collect().foreach(println)
}
}
输入:
1 2 3 4 5 6 7 8 9 10
输出:
1 3 5 7 9
2 4 6 8 10
示意图
下一篇: UVa201 Squares(正方形)