spark基礎--rdd的生成

使用parallelize創建RDD 也 可以使用makeRDD來創建RDD。

通過查看源碼可以發現,makeRDD執行的時候,也是在調用parallelize函數,二者無區別。


通過 .textFile 可以通過文件讀取項目路徑 和 hdfs 文件路徑


*

makeRDD 和 parallelize 第二個參數爲處理的並行度數量

不給定時,默認值爲 通過

conf.getInt("spark.default.parallelism", math.max(totalCoreCount.get(), 2)) 獲取

即 獲取 spark.default.parallelism 參數值

當參數值存在時,使用 spark.default.parallelism 配置的參數

當參數不存在時,比較系統總共可用核數 和 2 ,哪個大使用哪個

*

通過.textFile 第二個參數爲處理的並行度數量(textFile對數據切分規則和hadoop對文件切分規則一致)

不給定時,默認值爲取 conf.getInt("spark.default.parallelism", math.min(totalCoreCount.get(), 2))

即參數不存在時,比較系統總共可用核數 和 2 ,哪個小使用哪個,但是不一定是分區數,取決於hadoop讀取文件時的分片規則

查看源碼可發現,底層調用的是 hadoopFile,因此 假設參數默認值爲 2

經過hadoop切片處理,會經過hadoop對文件進行切分,假如數據爲5條,經過hadoop切片會分成 2 2 1 條數據

*

saveRDD 函數存儲的分區數,即數據文本數量,取決於 運行的並行度


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章