第五章_Spark核心编程_Rdd_行动算子_reduce

1. 定义

  /*
  * 1.定义
  *     def reduce(f: (T, T) => T): T
  * 2.功能
  *     聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据
  * 3.note
  *     1.先在map端reduce,再将结果拉取到Driver上进行reduce
  *     2.当 计算不满足结合律和交换律时,分区数量会影响reduce的结果
  *
  * */

2. 示例

  object reduceTest extends App {

    val sparkconf: SparkConf = new SparkConf().setMaster("local").setAppName("distinctTest")

    val sc: SparkContext = new SparkContext(sparkconf)

    private val rdd: RDD[Int] = sc.makeRDD(List(8, 2, 4, 2), 4)

    private val sum: Int = rdd.reduce(_ - _)

    println(sum)

    sc.stop()
  }

 

posted @ 2022-03-27 16:11  学而不思则罔!  阅读(43)  评论(0)    收藏  举报