Spark_累加器

分布式共享只写变量

实现原理:

累加器用来把Executor端变量信息聚合到Driver端,在Driver程序中定义的变量,在Executor端的每个Task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回Driver端进行merge

// Spark默认就提供了简单数据聚合的累加器

scala 复制代码
   val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("spark")
    val sc = new SparkContext(sparkConf)
    val rdd = sc.makeRDD(List(1,2,3,4))

    val sumAcc: LongAccumulator = sc.longAccumulator("sum")

    rdd.foreach(
      num => {
        sumAcc.add(num)
      }
    )

    val value: lang.Long = sumAcc.value
    print(value)

还有double,collection类型累加器

少加的情况:

转换算子中调用累加器,如果没有行动算子的话,那么不会执行

多加的情况:

转换算子中调用累加器,行动算子多次执行导致多加

一般情况下,累加器会放置在行动算子中

相关推荐
玄微云13 分钟前
玄微科技:大健康数智化的 4 个 AI 智能体落地要点
大数据·人工智能·科技·软件需求·门店管理
热爱专研AI的学妹15 分钟前
【搭建工作流教程】使用数眼智能 API 搭建 AI 智能体工作流教程(含可视化流程图)
大数据·数据库·人工智能·python·ai·语言模型·流程图
wang_yb29 分钟前
拒绝“凭感觉”:用回归分析看透数据背后的秘密
大数据·databook
TDengine (老段)1 小时前
TDengine 在智能制造领域的应用实践
java·大数据·数据库·制造·时序数据库·tdengine·涛思数据
山沐与山1 小时前
【Flink】Flink算子大全
大数据·flink
ayingmeizi1632 小时前
智慧养老的数字化转型:AI CRM如何重构全链路增长
大数据·人工智能·重构
老马聊技术3 小时前
HBase单节点环境搭建详细教程
大数据·数据库·hbase
hssfscv3 小时前
Javeweb学习笔记——Vue+Ajax
vue.js·笔记·学习·ajax
xerthwis3 小时前
Flink:从“微批”到“真流”,数据处理的哲学转向与时代抉择
大数据·flink
jqpwxt3 小时前
启点创新智慧景区服务平台,智慧景区数字驾驶舱建设
大数据·人工智能