第6章 Spark编程进阶

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010819416/article/details/82825293

6.1 简介
共享变量
1)累加器(accumulator):
用来对信息进行聚合
2)广播变量(broadcast variable):
用来高效分发较大的对象

基于分区处理、外部程序接口调用、汇总统计

6.2 累加器
提供了将工作节点中的值聚合到驱动器程序中的简单语法。常见用途是在调试时对作业执行过程中的事件进行计数。
累加器用法:

  • 创建累加器,SparkContext.accumulator(initialValue),返回Accumulator[T]对象
  • Spark闭包里的执行器使用累加器的+=方法
  • 调用累加器的value属性来访问累加器的值

6.2.1 累加器与容错性
在行动操作中,对累加器的修改应用一次;
转化操作中,不能保证。

6.2.2 自定义累加器
扩展AccumulatorParam

6.3 广播变量
让程序高效地向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用
使用广播变量:
1)调用SparkContext.broadcast创建出一个Broadcast[T]对象
2)通过value访问值
3)变量只会被发到各个节点一次,应作为只读值处理

6.4 基于分区进行操作
Spark提供基于分区的map和foreach,让你的部分代码只对RDD的每个分区进行一次,这样可以帮助降低这些操作的代价

6.5 与外部程序间的管道
可以将数据通过管道传给用其他语言编写的程序,比如R语言脚本。

6.6 数值RDD的操作
数值RDD调用stats()时,返回StatsCounter对象。StatsCounter上有很多可用的方法。

6.7 总结

猜你喜欢

转载自blog.csdn.net/u010819416/article/details/82825293