Spark 中算子功能與分類介紹

    最近看了一些SPARK資料,還沒有系統性的整理,這裏先歸納一下spark中算子的總結。如有什麼錯誤或者不妥之處,希望大神們指出,相互交流共同進步!!哈哈哈
    算子的定義:RDD中定義的函數,可以對RDD中的數據進行轉換和操作。
    下面根據算子類型的分類進行總結:
1. value型算子
    從輸入到輸出可分爲一對一(包括cache)、多對一、多對多、輸出分區爲輸入分區自激
    1)一對一,
        map,簡單的一對一映射,集合不變;
        flatMap,一對一映射,並將最後映射結果整合;
        mappartitions,對分區內元素進行迭代操作,例如過濾等,然後分區不變
        glom,將分區內容轉換成數據
    2)多對一,
        union,相同數據類型RDD進行合併,並不去重
        cartesian,對RDD內的所有元素進行笛卡爾積操作
    3)多對多,
        groupBy,將元素通過函數生成相應的Key,然後轉化爲Key-value格式
    4)輸出分區爲出入分區子集,
        filter,對RDD進行過濾操作,結果分區不調整
        distinct,對RDD進行去重操作,
        subtract,RDD間進行減操作,去除相同數據元素
        sample/takeSample 對RDD進行採樣操作
    5)cache,
        cache,將RDD數據原樣存入內存
        persist,對RDD數據進行緩存操作
2. Key-Value算子
    Key-Value算子大致可分爲一對一,聚集,連接三類操作
    1)一對一,
        mapValues,針對數值對中的Value進行上面提到的map操作
    2)聚集操作
        combineByKey、reduceByKey、partitionBy、cogroup
    3)連接
        join、leftOutJoin、rightOutJoin
3. Actions算子
    該算子通過SparkContext執行提交作業操作,出發RDD DAG的執行
    1)foreach, 對RDD中每個元素進行操作,但是不返回RDD或者Array,只返回Unit
    2)存入HDFS,saveAsTextFile,saveAsObjectFile
    3)scala數據格式,collect,collectAsMap,reduceByKeyLocally, lookup, count, top, reduce, fold, aggregate






















閱讀(17) | 評論(0) | 轉發(0) |
評論熱議
發佈了68 篇原創文章 · 獲贊 10 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章