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篇】---SparkStreaming中運算元中OutPutOperator類運算元Spark
- Spark常用Transformations運算元(一)SparkORM
- spark reduceByKey原始碼解析Spark原始碼
- Spark RDD運算元(八)mapPartitions, mapPartitionsWithIndexSparkAPPIndex
- spark一些常用運算元Spark
- Flink的DataSet基本運算元總結
- Spark SQL原始碼解析(四)Optimization和Physical Planning階段解析SparkSQL原始碼
- Spark----RDD運算元分類 DAGSpark
- Flink 運算元鏈可以合併的原始碼分析原始碼
- 使用運算元控制公式運算公式
- 【Flink】Deduplicate 去重運算元原始碼解讀原始碼
- Spark原始碼解析-Yarn部署流程(ApplicationMaster)Spark原始碼YarnAPPAST
- Spark 原始碼系列(六)Shuffle 的過程解析Spark原始碼
- Spark Shuffle機制詳細原始碼解析Spark原始碼
- LinkedList 基本示例及原始碼解析原始碼
- spark RDD textFile運算元 分割槽數量詳解Spark
- Python 影像處理 OpenCV (12): Roberts 運算元、 Prewitt 運算元、 Sobel 運算元和 Laplacian 運算元邊緣檢測技術PythonOpenCV
- Spark SQL原始碼解析(五)SparkPlan準備和執行階段SparkSQL原始碼
- Spark 原始碼解析 : DAGScheduler中的DAG劃分與提交Spark原始碼
- Spark運算元:統計RDD分割槽中的元素及數量Spark
- spark核心(下)——job任務提交原始碼解析Spark原始碼
- spark RDD運算元(五)之鍵值對聚合操作combineByKeySpark
- Spring @Profile註解使用和原始碼解析Spring原始碼
- React原始碼中的位運算技巧React原始碼
- TextWatcher的使用及原始碼解析原始碼
- redis原始碼解析----epoll的使用Redis原始碼
- 運算元
- python中Laplacian運算元如何使用Python
- Spark 原始碼系列(九)Spark SQL 初體驗之解析過程詳解Spark原始碼SQL
- spring原始碼深度解析— IOC 之 容器的基本實現Spring原始碼
- 通過WordCount解析Spark RDD內部原始碼機制Spark原始碼
- spring原始碼解析:元註解功能的實現Spring原始碼
- Sentinel基本使用與原始碼分析原始碼
- Dive into TensorFlow系列(2)- 解析TF核心抽象op運算元抽象
- Android中使用LitePal運算元據庫Android
- RDD運算元