spark學習筆記3:鍵值對操作
鍵值對rdd通常用來進行聚合計算,spark為包含鍵值對型別的rdd提供了一些專有的操作
spark中建立pair rdd的方法:
1、儲存鍵值對的資料格式會在讀取時直接返回由其鍵值對資料組成的pair rdd
2、還可以使用map()函式將乙個普通的rdd轉為pair rdd。
pair rdd的轉化操作
reducebykey() 與reduce類似 ,接收乙個函式,並使用該函式對值進行合併,為每個資料集中的每個鍵進行並行的歸約操作。返回乙個由各鍵和對應鍵歸約出來的結果值組成的新的rdd。例如 :上一章中單詞計數的例子:val counts = words.map(word => (word,1)).reducebykey
foldbykey()與fold()類似,都使用乙個與rdd和合併函式中的資料型別相同的零值最為初始值。val counts = words.map(word => (word,1)).foldbykey
combinebykey()是最為常用的基於鍵進行聚合的函式,可以返回與輸入型別不同的返回值。
groupbykey()使用rdd中的鍵來對資料進行分組,對於乙個由型別k的鍵和型別v的值組成的rdd,所得到的結果rdd型別會是[k, iterable[v] ]。
cogroup函式對多個共享同乙個鍵的rdd進行分組,對兩個鍵型別均為k而值型別分別為v和w的rdd進行cogroup時,得到的結果rdd型別為[(k,(iterable[v],iterable[w]))] 。
join(other)這樣的連線是內連線,只有在兩個pair rdd中都存在的鍵才輸出。若乙個輸入對應的鍵有多個值時,生成的pair rdd會包括來自兩個輸入rdd的每一組相對應的記錄。
leftouterjoin(other)左外連線和rightouterjoin(other)右外連線都會根據鍵連線兩個rdd,但是允許結果中存在其中的乙個pair rdd所缺失的鍵。
sortbykey()函式接收乙個叫做ascending的引數,表示想要讓結果公升序排序還是降序排序。
pair rdd的行動操作
1、countbykey() 對每個鍵對應的元素分別計數。
2、collectasmap()將結果以對映表的形式返回,注意後面的value會覆蓋前面的。
3、lookup(key)返回給定鍵對應的所有值。
Spark學習筆記 鍵值對操作
鍵值對 rdd是 spark 中許多操作所需要的常見資料型別 鍵值對 rdd 通常用來進行聚合計算。我們一般要先通過一些初始etl 抽取 轉化 裝載 操作來將資料轉化為鍵值對形式。spark 為包含鍵值對型別的 rdd 提供了一些專有的操作。1.建立pair rdd val input sc.par...
spark鍵值對操作 一
鍵值對rdd也叫做pair rdd 把乙個普通 rdd轉換為pair rdd的時候使用map 函式來實現 使用第乙個單詞作為乙個鍵,建立乙個pair rdd pairs lines.map lambda x x.split 0 x reducebykey func 合併具有相同鍵的值 rdd.red...
Spark學習之鍵值對(pair RDD)操作
1 讀取本身就是鍵值對的資料 2 乙個普通的rdd通過map 轉為pair rdd,傳遞的函式需要返回鍵值對。python中使用第乙個單詞作為鍵建立出乙個pair rddpairs lines.amp lambda x x.split 0 x scala中使用第乙個單詞作為鍵建立出乙個pair rd...