累加器

应用场景:Driver端定义一个共享变量,将数据累加到该变量上,如果直接用foreach或map等迭代算子, 是无法将累加的变量返回到driver端,因为累加的过程发生在Executor端。一般用于计数场景下,变量往往声明在Driver端。

特性: 变量在Driver端,累加的过程是在Executor端,在累加的过程Executor端是无法读取其值的,如果想读取其值,
只能在Driver端才能读取。
自定义累加器使用(此例子为非自定义累加器):
1.创建一个Accumulator累加器的实例
2.通过sc.register()注册一个累加器
3.通过累加器实名.add来添加数据
4.通过累加器实例名.value来后去累加器的值

import org.apache.spark.{SparkConf, SparkContext}object AccumlatorDemo {def main(args: Array[String]): Unit = {val conf = new SparkConf()conf.setAppName(this.getClass.getName).setMaster("local[2]")val sc = new SparkContext(conf)val numsRdd = sc.parallelize(List(1,2,3,4,5,6))//var sum :Int= 0//numsRdd.map(x=>sum+=x)//0//numsRdd.foreach(x=>sum+=x)//0//sum=numsRdd.reduce(_+_)//21//使用accumulator实现给共享变量的聚合值的过程val sum =sc.accumulator(0)numsRdd.foreach(x=>sum+=x)println(sum)sc.stop()}
}

Accumulator累加器(一)相关推荐

  1. Spark 之 Accumulator 累加器

    Spark Accumulator 累加器作用 源码 累加器原理图 Spark中累加器的执行流程: 累加器使用demo spark ui 使用累加器中可能遇到的坑 线程安全问题 累加器作用 累加器:分 ...

  2. Spark Accumulator累加器

    什么是累加器 累加器用来对信息进行聚合 1 算子在计算时,不会影响到driver里的变量的值(driver里的变量称之为共享变量) 2 算子使用的其实都是driver里的变量的一个副本 3 如果想要影 ...

  3. Flink的累加器和广播变量、广播流、分布式缓存

    1.Accumulator累加器  Accumulator即累加器,与Mapreduce counter的应用场景差不多,都能很好地观察task在运行期间的数据变化.可以在Flink job任务中的算 ...

  4. java 累加器_09-flink-Accumulator(累加器)

    09-flink-Accumulator(累加器) 概念 Accumulator(累加器):累加器主要作用在用户操作(operate)中收集分布式统计信息或聚合信息.每个并行实例创建并更新其自己的累加 ...

  5. Spark一路火花带闪电——Accumulator Broadcast

    文章目录 Accumulator累加器 Accumulator简介 陷阱及解决办法 Broadcast广播变量 Accumulator累加器 Accumulator简介 Accumulator是spa ...

  6. 网络工程师_记录的一些真题_2014上半年上午

    1. 在CPU中,常用来为ALU执行算术逻辑运算提供数据并暂存运算结果的寄存器是(1). (1)A.程序计数器     B.状态寄存器    C.通用寄存器    D.累加寄存器 [答案]D [解析] ...

  7. 家电 计算机和电讯领域 英语,网络通讯及计算机英语词汇.doc

    网络通讯及计算机英语词汇 0-9 3DDS 三维数字交互宽带网络系统 A absolute positioning 绝对寻址 abstract windows toolkit 抽象窗口工具库 accu ...

  8. splice方法_[7000字]JavaScript数组所有方法基础总结

    基础决定一个人的上限,很多时候我们感叹别人在实现一个功能时使用方法的精妙,并且反思,为什么别人想的出来自己却想不出来?我觉得主要是因为对于基础的掌握上有很大的差距.本文总结数组的所有方法的基础使用,希 ...

  9. Spark使用总结与分享

    背景 使用spark开发已有几个月.相比于python/hive,scala/spark学习门槛较高.尤其记得刚开时,举步维艰,进展十分缓慢.不过谢天谢地,这段苦涩(bi)的日子过去了.忆苦思甜,为了 ...

最新文章

  1. android数据库降级_android——数据库版本升/降级问题
  2. 记录到二进制的内容配置
  3. Concurrent HTTP connections in Node.js
  4. 存储优化 - 删除重复记录只保留单条
  5. TCPClient、TCPListener的用法
  6. Problem Statement
  7. sql server权限_保护SQL Server审核的访问权限
  8. jquery 常用方法 集锦
  9. 「Algospot」量化QUANTIZE
  10. 决策树 Decision Tree
  11. telegram bots 开发者文档 简介
  12. firefox 3.0 beta 1 试用与下载
  13. 微信记录删了,怎么恢复找回来?5种攻略推荐
  14. 大学计算机课思维导图,快速记忆和理解大学计算机思维导图
  15. 苹果笔记本没有计算机管理员,Mac管理员账户丢失怎么办
  16. matlab求包络线拟合,MATLAB 一堆散点如何求包络线
  17. ms office excel2013教程 - 分类汇总
  18. Win系统 - 如何彻底删除文件 / 文件夹?
  19. [USACO06NOV]玉米田Corn Fields
  20. 利用python库moviepy,快速剪辑视频

热门文章

  1. nginx: [emerg] “location“ directive is not allowed here in /usr/local/nginx/conf/nginx.conf:72
  2. linux指定分区label,Linux_Linux中分区挂载和LABEL的指定,让Linux开机就挂载分区,我知 - phpStudy...
  3. Makefile学习之 all
  4. java continu语句
  5. 公开在线视频流(rtsp、stmp)
  6. HCIA---day02
  7. ASP下使用md5加密注册信息
  8. Linux学习笔记1(鸟哥的私房菜)
  9. 第三章第三节、他是一个箍桶匠
  10. ISIS之LSP详解