Spark學習筆記(一)----spark運算元操作
阿新 • • 發佈:2018-12-15
1.前言
最近在幫公司瞭解大資料方面的技術,涉及到spark的相關內容,所以想寫個筆記記錄一下。目前用到的時spark2.1.0的版本,僅供學習參考。
2.正文
2.1spark官網運算元的分類
spark官網上面有對於運算元的描述,但是spark對於運算元的分類粒度較粗,大致為transformations和actions,其中的transformations是從一個RDD轉換操作,結果仍然為RDD;而Actions則是從RDD操作變成非RDD結果。其中的transformations是由Actions觸發的,即程式碼走到transformations的時候,並不會立即進行計算操作,而是實際等到需要action結果的時候才觸發。
- 一.Transformations
- map運算元操作
- flatMap運算元操作
- ..運算元操作
- 二.Actions
- ..運算元操作
以上的分類,是按照ADD實際操作的結果來劃分的,粒度相對而言較粗,實際在使用RDDapi的時候,可以將transformation的再細分,實際操作的時候,會涉及到運算元的值型別是Value型別或者是Key-Value型別的兩類。而且根據操作後返回的RDD內分割槽與輸入的RDD分割槽,也可以由一個對應關係,所以更詳細的劃分型別為:
- Transformations
- Value型別的transformations運算元
- 輸入RDD分割槽與輸出RDD分割槽一對一型別
- 1.map運算元
- 2.flatMap運算元
- 3.mapPartitions運算元
- 4.glom運算元
- 輸入RDD分割槽與輸出RDD分割槽多對一型別
- 5.union運算元
- 6.cartesian運算元
- 輸入RDD分割槽是輸出RDD分割槽子集型別
- 7.filter運算元
- 8.distinct運算元
- 9.subtract運算元
- 10.sample運算元
- 11.takeSample運算元
- Cache型別
- 12.cache運算元
- 13.persist運算元
- Key-Value型別的transformations運算元
- 輸入RDD分割槽與輸出RDD分割槽多對多型別
- 14.groupByKey運算元
- 輸入RDD分割槽與輸出RDD分割槽一對一型別
- 15.mapValues運算元
- 對單個或兩個RDD聚集
- 16.combineByKey運算元
- 17.reduceByKey運算元
- 18.partitionBy運算元
- 19.cogroup運算元
- 連線
- 20.join運算元
- 21.leftOutJoin和rightOutJoin運算元
- Actions
- 無輸出
- 22.foreach運算元
- HDFS
- 23.saveAsTextFile運算元
- 24.saveAsTextFile運算元
- SCALA或者JAVA等的集合,數字輸出型別
- 25.collect運算元
- 26.collectAsMap運算元
- 27.reduceByKeyLocally運算元
- 28.lookup運算元
- 29.count運算元
- 30.top運算元
- 31.reduce運算元
- 32.fold運算元
- 33.aggregate運算元