spark的基本運算元使用和原始碼解析
一.coalesce
1.coalesce原始碼
2.coalesce解釋
是窄依賴
由多變少
shuffer預設是false,要注意
3.coalesce應用場景
解決小檔案,例如你如果開始有200個檔案對應20分割槽,你極端情況下你過濾變長一個檔案,你不能還用200個分割槽去裝吧
用coalesce解決,主要就是把前面的壓縮一下,但是過濾完後你要用coalesce必須實現做預估
4.上述的極端情況
你如果是xxx.oalesce(1),從源頭就是1,不會像mr可以設定reduce的數量
5.注意事項用coalesce 中RDD的不可變性
下圖說述的分割槽的大小a.partitions.size 你之前沒有用變數接收coalesce 的值,是不會變得值
6.你傳一個引數要小於預設分割槽才會生效
7.coalesce設定的引數大於預設的分割槽數不會生效,前提是一個引數
8.coalesce設定的引數大於預設的分割槽數生效
9.此問題對應的原始碼:
note With shuffle = true, you can actually coalesce to a larger number
一般數不需要第二個引數的
二.repartition
1.原始碼:
2.底層呼叫的是coalesce,但是傳兩個引數,允許shuffer
3.由少變多
4.repartition與coalesce區別:
就是repartition底層呼叫coalesce兩個引數
三.map方法使用
1.原始碼
2.解釋
每個函式操作的物件是每個元素
3.注意事項
千萬不要用於運算元據庫,否則一個元素要拿個connect,太耗費資源
四.mapPartitions
1.原始碼
2.解釋
每個函式作用在每個分割槽上,多用於操縱資料庫,一個分割槽一個connect
五.foreach 與 foreachPartition
1.原始碼
2.解釋
一個是列印每個元素,一個是按分割槽列印,都是action
3.注意事項
foreachPartition多用於運算元據庫,儲存結果
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69941978/viewspace-2651535/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 圖解Spark排序運算元sortBy的核心原始碼圖解Spark排序原始碼
- spark-運算元-分割槽運算元Spark
- Spark運算元:RDD基本轉換操作map、flatMapSpark
- 【Spark篇】---Spark中控制運算元Spark
- 【Spark篇】---Spark中Action運算元Spark
- Spark運算元篇 --Spark運算元之aggregateByKey詳解Spark
- Spark運算元篇 --Spark運算元之combineByKey詳解Spark
- 【Spark篇】---Spark中transformations運算元二SparkORM
- Spark常用Transformations運算元(一)SparkORM
- Spark常用Transformations運算元(二)SparkORM
- 【Spark篇】---SparkStreaming中運算元中OutPutOperator類運算元Spark
- 【Spark篇】---Spark中Transformations轉換運算元SparkORM
- spark一些常用運算元Spark
- 【Spark篇】---SparkStreaming運算元操作transform和updateStateByKeySparkORM
- Spark原始碼-SparkContext原始碼解析Spark原始碼Context
- Spark----RDD運算元分類 DAGSpark
- spark reduceByKey原始碼解析Spark原始碼
- 使用運算元控制公式運算公式
- Picasso的使用和原始碼解析原始碼
- EventBus的使用和原始碼解析原始碼
- Spark RDD運算元(八)mapPartitions, mapPartitionsWithIndexSparkAPPIndex
- Flink的DataSet基本運算元總結
- Flink 運算元鏈可以合併的原始碼分析原始碼
- Spark 原始碼解析之SparkContextSpark原始碼Context
- Spark原始碼解析之Shuffle WriterSpark原始碼
- Spark原始碼解析之Storage模組Spark原始碼
- JDBC運算元據庫基本步驟JDBC
- Spark SQL原始碼解析(四)Optimization和Physical Planning階段解析SparkSQL原始碼
- 【Flink】Deduplicate 去重運算元原始碼解讀原始碼
- 【OpenCV】影像變換(二)邊緣檢測:梯度運算元、Sobel運算元和Laplace運算元OpenCV梯度
- 陣列和廣義表的基本運算實現(三元組)陣列
- Spark 原始碼系列(六)Shuffle 的過程解析Spark原始碼
- spark RDD textFile運算元 分割槽數量詳解Spark
- RxBinding使用和原始碼解析原始碼
- Android 圖片載入框架 Picasso 基本使用和原始碼完全解析Android框架原始碼
- Binder的使用方法和原始碼解析原始碼
- Python 影像處理 OpenCV (12): Roberts 運算元、 Prewitt 運算元、 Sobel 運算元和 Laplacian 運算元邊緣檢測技術PythonOpenCV
- Spark Shuffle機制詳細原始碼解析Spark原始碼