- 学会使用Spark中创建RDD的两种方法
- 结合本文内容解释“不可变性”
- 能将Spark程序翻译成“变换”和“行为”的流水线
- 列出创建一个Spark程序的步骤
Driver Program 是Spark程序的起点,它把RDD分发到集群并保证RDD的转化和动作的执行。Driver Program 中包含一个Spark Context,而每个Work Node中包含一个Spark Executor。RDD既可以从文件或集群中创建,也可以从数据结构中创建。
从文件创建时,使用sc.textFile()方法,如
#从hdfs内的文件创建 lines = sc.textFile("hdfs:/root/words.txt") #从本地文件创建 lines = sc.textFile("/root/words.txt")
从数据结构创建时,使用sc.parallelize()方法,如
#从list创建 lines = sc.parallelize(["big","data"]) #并发地将[0,1,2,3...9]分割成三部分 numbers = sc.parallelize(range(10),3) #结果为[0,1,2],[3,4,5],[6,7,8,9] #合并 number.collect() #结果为[0,1,2,3...9]
Spark中有两种操作,Transformation和Action。Spark程序有一种叫lazy evaluation的执行机制,即并不立即执行Transformation,等到一个Action执行时再一并执行Transformation。在前一篇大数据处理流水线中有提到一些常见的Transformation,如下图中的filter、map和reduce。相应的,collect和saveAsTextFile都是Action。