1. 程式人生 > >Spark學習筆記(一)----spark運算元操作

Spark學習筆記(一)----spark運算元操作

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運算元