1. 程式人生 > >Spark常用函式講解之鍵值RDD轉換

Spark常用函式講解之鍵值RDD轉換

本節所講函式 1.mapValus(fun):對[K,V]型資料中的V值map操作 (例1):對每個的的年齡加2
1 2 3 4 5 6 7 8 9 10 object MapValues { def main(args: Array[String]) { val conf = new SparkConf().setMaster("local").setAppName("map") val sc = new SparkContext(conf)
val list = List(("mobin",22),("kpop",20),("lufei",23)) val rdd = sc.parallelize(list) val mapValuesRDD = rdd.mapValues(_+2) mapValuesRDD.foreach(println) } }
輸出:
(mobin,24)
(kpop,22)
(lufei,25)
(RDD依賴圖:紅色塊表示一個RDD區,黑色塊表示該分割槽集合,下同)
  2.flatMapValues(fun):對[K,V]型資料中的V值flatmap操作 (例2):
1 2 3 4 //省略<br>val list = List(("mobin",22),("kpop",20),("lufei",23)) val rdd = sc.parallelize(list) val mapValuesRDD = rdd.flatMapValues(x => Seq(x,"male")) mapValuesRDD.foreach(println)
輸出:
(mobin,22)
(mobin,male)
(kpop,20)
(kpop,male)
(lufei,23)
(lufei,male)
如果是mapValues會輸出:
(mobin,List(22, male))
(kpop,List(20, male))
(lufei,List(23, male))
(RDD依賴圖)   3.comineByKey(createCombiner,mergeValue,mergeCombiners,partitioner,mapSideCombine)    comineByKey(createCombiner,mergeValue,mergeCombiners,numPartitions)    comineByKey(createCombiner,mergeValue,mergeCombiners) createCombiner:在第一次遇到Key時建立組合器函式,將RDD資料集中的V型別值轉換C型別值(V => C), 如例3: mergeValue合併值函式,再次遇到相同的Key時,將createCombiner道理的C型別值與這次傳入的V型別值合併成一個C型別值(C,V)=>C, 如例3: mergeCombiners:合併組合器函式,將C型別值兩兩合併成一個C型別值 如例3:   partitioner:使用已有的或自定義的分割槽函式,預設是HashPartitioner mapSideCombine:是否在map端進行Combine操作,預設為true 注意前三個函式的引數型別要對應;第一次遇到Key時呼叫createCombiner,再次遇到相同的Key時呼叫mergeValue合併值 (例3):統計男性和女生的個數,並以(性別,(名字,名字....),個數)的形式輸出
1 2 3 4 5

相關推薦

Spark常用函式講解RDD轉換

本節所講函式 1.mapValus(fun):對[K,V]型資料中的V值map操作 (例1):對每個的的年齡加2 1 2 3 4 5 6 7 8 9

Spark常用函式RDD轉換+例項

RDD:彈性分散式資料集,是一種特殊集合 ‚ 支援多種來源 ‚ 有容錯機制 ‚ 可以被快取 ‚ 支援並行操作,一個RDD代表一個分割槽裡的資料集RDD有兩種操作運算元:         Transformatio

Spark常用函式講解Action操作+例項

RDD:彈性分散式資料集,是一種特殊集合 ‚ 支援多種來源 ‚ 有容錯機制 ‚ 可以被快取 ‚ 支援並行操作,一個RDD代表一個分割槽裡的資料集RDD有兩種操作運算元:         Transformatio

Spark運算元:transformation轉換groupByKey、reduceByKey、reduceByKeyLocally

1、groupByKey 1)def groupByKey(): RDD[(K, Iterable[V])] 2)def groupByKey(numPartitions: Int): RDD[(K, Iterable[V])] 3)def groupByKey(parti

Spark運算元:transformation轉換combineByKey、foldByKey

1、combineByKey 1)def combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C): RDD[(K, C)

Spark運算元:transformation轉換join、cogroup

1、join 1)def join[W](other: RDD[(K, W)]): RDD[(K, (V, W))] 2)def join[W](other: RDD[(K, W)], numPartitions: Int): RDD[(K, (V, W))] 3)def

Spark運算元:transformation轉換partitionBy、mapValues、flatMapValues

1、partitionBy:def partitionBy(partitioner: Partitioner): RDD[(K, V)] 該函式根據partitioner函式生成新的ShuffleRDD,將原RDD重新分割槽。 scala> var rdd1 = sc.makeRDD(

Spark運算元:transformation轉換leftOuterJoin、rightOuterJoin、subtractByKey

1、leftOuterJoin 1)def leftOuterJoin[W](other: RDD[(K, W)]): RDD[(K, (V, Option[W]))] 2)def leftOuterJoin[W](other: RDD[(K, W)], numPartitions: Int):

6.spark core對操作

方式 lines () end 結果 字符 額外 creat 很多 鍵值對RDD(pair RDD)是spark中許多操作所需要的常見數據類型,通常用來進行聚合計算。 創建Pair RDD ??spark有多種方式可以創建pair RDD。比如:很多存儲鍵值對的數據格式在讀

Spark對操作-Java篇(三)

一、簡介  鍵值對 RDD 是 Spark 中許多操作所需要的常見資料型別。本章就來介紹如何操作鍵值對 RDD。鍵值對 RDD 通常用來進行聚合計算。我們一般要先通過一些初始 ETL(抽取、轉 化、裝載)操作來將資料轉化為鍵值對形式。鍵值對 RDD 提供了一些新的操作介面(

redis常用命令及高階應用的相關命令

keys 返回滿足給定pattern的所有key 例如:返回所有鍵 127.0.0.1:6379> keys * 1) "list3" 2) "myset5" 3) "list6" 4) "myset2" 5) "sset2" 6)

Spark學習筆記3:對操作

對象 常用 ava java 參數 通過 頁面 ascend 處理過程 鍵值對RDD通常用來進行聚合計算,Spark為包含鍵值對類型的RDD提供了一些專有的操作。這些RDD被稱為pair RDD。pair RDD提供了並行操作各個鍵或跨節點重新進行數據分組的操作接口。 Sp

2.Spark常用運算元講解 (z轉)

2.Spark常用運算元講解 2017年03月15日 16:50:45 dream0352 閱讀數:16141 標籤: SparkSpark常用運算元spark運算元Spark運算元講解 更多 個人分類: spark   S

redis常用操作和操作

string、list常用操作 string資料建立、覆蓋及設定過期時間 127.0.0.1:6379> get key1         檢視原來的key1的值 "b" 127.0.0.1:6379> set key1 123   &nbs

Go工作中用到的包和常用函式講解

func main() { m := map[string]interface{}{"UserId": "2"} s := CreateToken("8QOihWUl9uD5W4kI", m) fmt.Println(s) token := "eyJh

spark 常用函式總結

1, textFile()  讀取外部資料來源 2, map() 對每一條資料進行相應的處理 如切分 3, reduceByKey(_+_) 傳入一個函式,將key相同的一類進行聚合計算 如相加 4, mapvalues(_+10) 傳入一個函式,類似於map方法,不過這裡

STL常用函式複習————list

//list雙向連結串列容器 前驅元素指標域+資料域+後繼元素指標域 /*list的頭結點的前驅元素指標域儲存的是連結串列中尾節點的首地址 list的尾節點的後繼元素指標域儲存的是連結串列中頭

spark 常用函式介紹(python)

全棧工程師開發手冊 (作者:欒鵬) 獲取SparkContext python語法 1. 獲取sparkSession: se = SparkSession.builder.config(conf = SparkConf()).getOrCreate()

spark常用函式:transformation和action

1、RDD提供了兩種型別的操作:transformation和action 所有的transformation都是採用的懶策略,如果只是將transformation提交是不會執行計算的,計算只有在action被提交的時候才被觸發。 1)transformation操作:得

pandas資料處理常用函式demo建立/行列操作/檢視/檔案操作

pandas是Python下強大的資料分析工具,這篇文章程式碼主要來自於 10 Minutes to pandas,我將示例程式碼進行了重跑和修改,基本可以滿足所有操作,但是使用更高階的功能可以達到事半功倍的效果:原文如下: http://pandas.py