全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

【操作教程】累加器和广播变量在哪些场景使用

发布时间:2022-07-22 17:55:00
发布人:syq

  累加器和广播变量在哪些场景使用?累加器是分布式的并且共享只写变量。如果在转换运算符中调用了累加器,并且没有后续的动作运算符,则不会执行累加器。如果后面两次调用action操作符,累加器会被执行两次,导致过度加法。

累加器和广播变量在哪些场景使用

  1、广播变量的使用介绍

  解决的场景:

1

  将Driver进程的共享数据发送给所有子节点的Executor进程的每个任务。如果不使用广播变量技术,Driver端默认会将共享数据分发给各个[Task],对网络分发造成很大压力。

  如果采用广播变量技术,Driver端的共享数据只会发送给每个[Executor]。 Executor 中的所有任务都重用这个对象。确保共享对象是[可序列化的]。因为跨节点传输的数据必须是可序列化的。

  将共享对象广播到Driver端的每个Executor:

  val bc = sc.broadcast(共享对象)

  在执行器中获得:

  bc.值

  2、累加器的使用方法

  集群中的所有 Executor 对同一个变量执行累积操作。 Spark 目前只支持累加 [add] 操作。内置3个累加器:【LongAccumulator】、【DoubleAccumulator】、【CollectionAccumulator】。

  如何使用整数累加器?

  在Driver端定义整数累加器并赋初值。

  acc=sc.accumulator(0)

  Executor端每次累加1

  acc+=1

  或者 acc.add(1)

2

  3、综合案例

3

4

  以上代码不仅练习了累加器和广播变量在哪些场景使用,还练习了如何使用函数式编程(Map、Filter),如何创建上下文变量,以及如何使用并行性。这些练习比较全面,希望能帮助你学习更多技能。更多关于IT大数据培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

相关文章

文件扩展名(后缀名)是什么?

文件扩展名(后缀名)是什么?

2023-10-14
云快照与自动备份有什么区别?

云快照与自动备份有什么区别?

2023-10-14
OKR与自驱力的关系是什么?

OKR与自驱力的关系是什么?

2023-10-14
office是什么软件类型?

office是什么软件类型?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取