spark 中reduceByKey()算子,记录下
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object KeyValue02_reduceByKey {
def main(args: Array[String]): Unit = {
//1.创建SparkConf并设置App名称
val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")
//2.创建SparkContext,该对象是提交Spark App的入口
val sc: SparkContext = new SparkContext(conf)
//3.创建一个rdd
val rdd: RDD[(String, Int)] =sc.makeRDD(List(("a",1),("b",5),("a",5),("b",2)))
//4.调用reduceByKey()方法按key聚合,求value的值
val reduceRDD: RDD[(String, Int)] = rdd.reduceByKey((v1,v2)=>v1+v2)
//打印
reduceRDD.collect().foreach(println)
//4.关闭连接
sc.stop()
}
}
结果:(a,6)
(b,7)