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类型累加器

少加的情况:

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

多加的情况:

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

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

相关推荐
AI营销实验室2 分钟前
原圈科技AI CRM系统深度解析:告别单点智能,构建AI协同作战体系
大数据·人工智能
武子康3 分钟前
大数据-214 K-Means 聚类实战:自写算法验证 + sklearn KMeans 参数/labels_/fit_predict 速通
大数据·后端·机器学习
说私域10 分钟前
用户感知断裂与商业模式颠覆:AI智能名片链动2+1模式S2B2C商城小程序的破局之道
大数据·人工智能·小程序
Gofarlic_OMS15 分钟前
MATLAB许可证闲置自动检测与智能提醒
java·大数据·运维·开发语言·人工智能·算法·matlab
智算菩萨16 分钟前
深度剖析Claude Haiku 4.5:近前沿性能与成本效益的完美融合——探索AI模型民主化的新纪元(开头有国内合法镜像站使用入口)
大数据·人工智能
jacky25720 分钟前
高保真光学仿真解决方案:基于多物理场耦合与混合数据驱动的产品数字孪生构建
大数据·人工智能·aigc·制造·数据库架构·共识算法
无我198726 分钟前
靠谱的厌氧池清淤哪家妙
大数据·人工智能·python
WZGL123028 分钟前
破解养老痛点:2026智慧健康养老布局的核心方向与实施路径
大数据·人工智能·物联网
檐下翻书17328 分钟前
在线自定义跨职能流程图工具 PC免费
大数据·人工智能·架构·html·流程图·论文笔记