RDD编程指南

在应用层上,每个Spark应用程序都由一个驱动程序组成,该驱动程序运行用户的main函数(这里并不指程序main入口函数),并在集群上执行各种并行操作。

Spark提供的主要抽象是一个弹性分布式数据集(RDD),它是跨集群节点分区的元素集合,可以并行操作。RDD是从Hadoop文件系统(或任何其他支持Hadoop的文件系统)中的文件或驱动程序中现有的Scala集合创建的,并对其执行transform操作。用户还可能要求Spark在内存中持久化RDD,从而允许在做并行操作时高效地重用RDD。最后,RDDs还可以自动从故障节点中恢复。

Spark中的第二个抽象是用于并行操作的共享变量。默认情况下,当Spark在不同节点上以任务集的形式并行运行函数时,函数中使用的每个变量的副本会被发送给每个任务。有时,变量需要在任务之间共享,或者在任务和驱动程序之间共享。Spark支持两种共享变量:广播变量(Broadcast Variables),可在所有节点上的内存中缓存;累加器(Accumulators),由Spark提供的类型,只能用来做加减法,比如计数器与求和。

在开始本教程之前,请先运行bin/pyspark,并跟着实践操作,会更容易理解它。

Last updated

Was this helpful?