RDD操作(二)(Python)

鍵值對 RDD 是 Spark 中許多操作所需要的常見數(shù)據(jù)類型。鍵值對 RDD 通常用來進行聚合計算。
我們一般要先通過一些初始 ETL(抽取、轉(zhuǎn)化、裝載)操作來將數(shù)據(jù)轉(zhuǎn)化為鍵值對形式。
對于鍵值對RDD的操作一般為聚合統(tǒng)計操作。

轉(zhuǎn)換為鍵值對RDD

在 Python 中使用第一個單詞作為鍵創(chuàng)建出一個 pair RDD:

 pairs = lines.map(lambda x: (x.split(" ")[0], x))

鍵值對RDD的操作

1. 鍵值對RDD的轉(zhuǎn)化操作

針對1個pair RDD的轉(zhuǎn)化操作

操作算子 含義
reduceByKey(func) 合并具有相同鍵的值
groupByKey() 對具有相同鍵的值進行分組
combineByKey( createCombiner, mergeValue, mergeCombiners, partitioner) 使用不同的返回類型合并具有 相同鍵的值
mapValues(func) 對 pair RDD 中的每個值應(yīng)用 一個函數(shù)而不改變鍵
flatMapValues(func) 對 pair RDD 中的每個值應(yīng)用 一個返回迭代器的函數(shù),然后 對返回的每個元素都生成一個 對應(yīng)原鍵的鍵值對記錄。通常 用于符號化
keys() 返回一個僅包含鍵的 RDD
values() 返回一個僅包含值的 RDD
sortByKey() 返回一個根據(jù)鍵排序的 RDD

針對兩個pair RDD的轉(zhuǎn)化操作

操作算子 含義
subtractByKey 刪掉 RDD 中鍵與 other RDD 中的鍵相同的元素
join 對兩個 RDD 進行內(nèi)連接
rightOuterJoin 對兩個 RDD 進行連接操作,確保第一 個 RDD 的鍵必須存在(右外連接)
leftOuterJoin 對兩個 RDD 進行連接操作,確保第二 個 RDD 的鍵必須存在(左外連接)
cogroup 將兩個 RDD 中擁有相同鍵的數(shù)據(jù)分組 到一起
2. 鍵值對RDD的行動操作
操作算子 含義
countByKey() 對每個鍵對應(yīng)的元素分別計數(shù)
collectAsMap() 將結(jié)果以映射表的形式返回,以便查詢
lookup(key) 返回給定鍵對應(yīng)的所有值

數(shù)據(jù)分區(qū)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容