spark3.0教程:转换算子不会执行累加器,行动算子会执行累加器

说明

转换算子不会执行累加器
行动算子会执行累加器

代码

import org.apache.spark.{SparkConf, SparkContext}

object Std3_zhuanHuanSuanZi {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setMaster("local[*]").setAppName("Application")
    //构建Spark上下文对象
    val sc = new SparkContext(conf)
    val rdd = sc.makeRDD(Array(1,2,3,4,5))

    val sum = sc.longAccumulator("sum")
    //没有行动算子,累加器不执行
    val resRDD=rdd.map(item => sum.add(item))
    println("sum="+sum.value)

    //调用一次行动算子,累加器就执行一次
    resRDD.collect()
    println("sum="+sum.value)

    //调用几次行动算子,累加器就执行几次
    resRDD.collect()
    println("sum="+sum.value)

    sc.stop()
  }
}

原文出处:/show_1IX2LyU5VX3s.html