使用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 函數存儲的分區數,即數據文本數量,取決於 運行的並行度