Spark-RDD编程

参考:http://dblab.xmu.edu.cn/blog/1312-2/

总的来说,每一 个Spark Application 都是由一个 driver program 组成,这个 driver program 会运行用户的 main 方法 ,且能在集群上执行并行操作。Spark 提供了一个主要的数据抽象,叫弹性分布式数据集(RDD),RDD 是一个能跨集群执行并行操作的数据集合,我们可以通过从 Hadoop file system 中读取数据来创建一个 RDD,亦可以将 driver program 中一个 Scala 集合转换而来。通常,我们可以让 Spark 将一个 RDD 持久化到内存,以方便我们后面对这个数据进行重复的操作(注:将数据持久化到内存后,读取速度会变得很快)。在一个分布式集群中,当一个节点挂掉之后,RDD 会自动的进行恢复。

Spark 中的另一个抽象是 shared variables (注:常见的中文资料会将其翻译成共享变量)。默认的,当 Spark 执行一个并行操作的时候,会将函数中使用到的变量复制到每一个 task 中,有些时候,一个变量需要在多个 tasks、或者是在 tasks 和 driver program 之间进行共享。Spark 支持两种类型的共享变量:一是 broadcast variables (广播变量),它将能一个变量缓存到所有节点的内存中,第二个是 accumulators (累加器),他只能被用作加法的变量,比如计数和求和。

http://dblab.xmu.edu.cn/blog/1312-2/

posted @ 2022-03-06 22:09  靠谱杨  阅读(43)  评论(0编辑  收藏  举报