Spark創建RDD的四種方式


在Spark中創建RDD的創建方式可以分為四種: 

ps:本文代碼基於spark on zeppelin實現

1、從集合(內存)中創建RDD

從集合中創建RDD,Spark主要提供了兩個方法:parallelize和makeRDD 

// 使用parallelize方法
val rdd1 = sc.parallelize(List(1,2,3,4))
//使用makeRDD方法
val rdd2=sc.makeRDD(List(1,2,3,4)))

//輸出
rdd1.collect().foreach(println) 
rdd2.collect().foreach(println) 

從底層代碼實現來講,makeRDD方法其實就是parallelize方法 

def makeRDD[T: ClassTag](  
    seq: Seq[T],  
    numSlices: Int = defaultParallelism): RDD[T] = withScope {          
parallelize(seq, numSlices) }

2、從外部存儲文件創建RDD

由外部存儲系統的數據集創建RDD包括:本地的文件系統,所有Hadoop支持的數據集,比如HDFS、HBase等。 

//輸入文件路徑讀取內容
val fileRDD: RDD[String] = sc.textFile("path") 
fileRDD.collect().foreach(println) 

Spark中文件路徑的編寫方式:Spark中textFile從外部讀取數據的用法 - 干了這瓶老干媽 - 博客園 (cnblogs.com)

3、從其它RDD創建

通過一個RDD運算完后,再產生新的RDD。(主要是根據RDD不可變的特性)

4、直接創建RDD(new) 

使用new的方式直接構造RDD,一般由Spark框架自身使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM