spark RDD功能與分類


算子的定義: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM