spark 5、共享变量
2016-06-07 17:48
363 查看
5、共享变量
Spark提供了两种限制的共享变量,Broadcast和Accumulators。
(1)Broadcast允许程序员持有一个只读的变量在各个节点之间,它一个常用的场景就是用它来存储一个很大的输入的数据集给每个节点使用,Spark会只用它独有的广播算法来减少通信损失。下面是例子:
(2)Accumulators是用来计数或者求总数的,使用SparkContext.accumulator(v)来给它一个初始化的值,然后用“+=”来进行操作,但是任务之间不能得到它的结果,只有驱动任务的程序可以得到它的结果。下面是例子:
Spark提供了两种限制的共享变量,Broadcast和Accumulators。
(1)Broadcast允许程序员持有一个只读的变量在各个节点之间,它一个常用的场景就是用它来存储一个很大的输入的数据集给每个节点使用,Spark会只用它独有的广播算法来减少通信损失。下面是例子:
scala> val broadcastVar = sc.broadcast(Array(1, 2, 3)) broadcastVar: spark.Broadcast[Array[Int]] = spark.Broadcast(b5c40191-a864-4c7d-b9bf-d87e1a4e787c) scala> broadcastVar.value res0: Array[Int] = Array(1, 2, 3)
(2)Accumulators是用来计数或者求总数的,使用SparkContext.accumulator(v)来给它一个初始化的值,然后用“+=”来进行操作,但是任务之间不能得到它的结果,只有驱动任务的程序可以得到它的结果。下面是例子:
scala> val accum = sc.accumulator(0) accum: spark.Accumulator[Int] = 0 scala> sc.parallelize(Array(1, 2, 3, 4)).foreach(x => accum += x) ... 10/09/29 18:41:08 INFO SparkContext: Tasks finished in 0.317106 s scala> accum.value res2: Int = 10
相关文章推荐
- php cURL library is not loaded
- JDK1.8 集成了Base64加密解密包
- FPS游戏服务器设计的问题
- 树的计数问题和通过一个中序遍历序列和一个先序遍历序列来确定一棵二叉树
- 树的计数问题和通过一个中序遍历序列和一个先序遍历序列来确定一棵二叉树
- 学习java就要多看书!
- 乐学成语——显示主界面
- 使用SQL Profile稳定SQL语句的执行计划
- Java开发常用的在线工具
- ES各种错误解决
- 高级产品经理十八种能力
- Java泛型中E、T、K、V等的含义
- Linux 下安redis
- Java开发常用的在线工具
- 学习java的态度很重要!
- linux挂硬盘方法
- 利用R语言进行交互数据可视化(转)
- 使用HTML语法图文混排
- 字符串的旋转
- gap锁 对于unique index 和Ununique index