上一篇部落格《什麼是RDD?帶你快速了解Spark中RDD的概念!》為大家帶來了RDD的概述之後。本篇部落格,部落客将繼續前進,為大家帶來RDD程式設計系列。
該系列第一篇,為大家帶來的是程式設計模型的了解與RDD的建立!
該系列内容十分豐富,高能預警,先贊後看!

RDD程式設計
1.程式設計模型
在Spark中,RDD被表示為對象,通過對象上的方法調用來對RDD進行轉換。經過一系列的transformations定義RDD之後,就可以調用actions觸發RDD的計算,action可以是向應用程式傳回結果(count, collect等),或者是向存儲系統儲存資料(saveAsTextFile等)。在Spark中,隻有遇到action,才會執行RDD的計算(即延遲計算),這樣在運作時可以通過管道的方式傳輸多個轉換。
要使用Spark,開發者需要編寫一個Driver程式,它被送出到叢集以排程運作Worker,如下圖所示。Driver中定義了一個或多個RDD,并調用RDD上的action,Worker則執行RDD分區計算任務。
2. RDD的建立
在Spark中建立RDD的建立方式可以分為三種:從集合中建立RDD;從外部存儲建立RDD;從其他RDD建立。
2.1 從集合中建立
從集合中建立RDD,Spark主要提供了兩種函數:parallelize和makeRDD
1) 使用parallelize()從集合建立
scala> val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8))
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:24
複制
2) 使用makeRDD()從集合建立
scala> val rdd1 = sc.makeRDD(Array(1,2,3,4,5,6,7,8))
rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at makeRDD at <console>:24
複制
2.2 由外部存儲系統的資料集建立
包括本地的檔案系統,還有所有Hadoop支援的資料集,比如HDFS、Cassandra、HBase等,我們會在後面的部落格中詳細介紹。
scala> val rdd2= sc.textFile("hdfs://hadoop102:9000/RELEASE")
rdd2: org.apache.spark.rdd.RDD[String] = hdfs:// hadoop102:9000/RELEASE MapPartitionsRDD[4] at textFile at <console>:24
複制
2.3 從其他RDD建立
第三種方式是通過對現有RDD的轉換來建立RDD,因為所涉及到的篇幅比較長,知識點也比較多,故在下一篇部落格(No2)中,我們将詳細讨論轉換。
好了,本次的分享就到這裡,受益的小夥伴或對大資料技術感興趣的朋友可以點個贊喲~