有幾種建立初始 rdd 的方式:
1. 通過scala 集合建立 rdd
使用sparkcontext的parallelize方法,為scala集合的資料指定分片數,儲存到記憶體中。例如:
sc.parallelize(list(1,2,3), 2);
//對list(1, 2, 3)進行並行化, 並行度為2(把scala的seq序列,分為2片)
2. 通過讀取本地檔案或hdfs上的檔案建立rdd
1)文字檔案( textinputformat)
sc.textfile(「file://path/file.txt」) //將本地文字檔案載入成rdd
sc.textfile(「directory/*.txt」) //將某類文字檔案載入成rdd
sc.textfile(「hdfs://nn:9000/path/file」) //hdfs檔案或目錄
通過這種方法建立的rdd,rdd的分割槽是怎麼分的呢?
檔案有多少個block,通過textfile建立的初始輸入rdd就有幾個partition
如果乙個檔案不足乙個block,那麼它也是根據1個block來進行分割槽的,分割槽數為 1
需要同乙個檔案存在所有的worker node上面,
在讀取的時候每個worker node的task會去讀取本檔案的一部分。
2)sequencefile檔案( sequencefileinputformat)
sc.sequencefile(「file.txt」) //將本地二進位制檔案載入成rdd
sc.sequencefile[string, int] (「hdfs://nn:9000/path/file」) //hdfs檔案或目錄
3)使用任意自定義的hadoop inputformat
sc.hadoopfile(path, inputformat, keyclass, valclass) // 與
例如:
val file = sparkcontext.hadoopfile[longwritable, text, textinputformat](path)
Spark程式設計模型 RDD
spark程式設計模型是彈性分布式資料集 resilient distributed dataset,rdd 是mapreduce模型的擴充套件和延伸 基於rdd機制實現了多類模型計算,如 1.迭代計算 2.互動式sql查詢 3.mapreduce rdd 4.流式資料處理。markdown 是一種...
spark學習 RDD程式設計
rdd建立 從從檔案系統中載入資料建立rdd 1.spark採用textfile 從檔案系統中載入資料建立rdd 可以使本地,分布式系統等 2.把檔案的url作為引數 可以是本地檔案系統的位址,分布式檔案系統hdfs的位址等等 從本地檔案中載入資料 sc為系統自動建立的sparkcontext,不用...
Spark之RDD的建立
在spark中建立rdd的建立方式可以分為三種 從集合中建立rdd 從外部儲存建立rdd 從其他rdd建立。從集合中建立rdd,spark主要提供了兩種函式 parallelize和makerdd 1 使用parallelize 從集合建立 2 使用makerdd 從集合建立 包括本地的檔案系統,還...