RDD轉換操作運算元 --- zip(k-v)、join(k)、cogroup(k)、lookup(k)
RDD轉換操作運算元 — zip、join
- zip 用於將兩個RDD組合成Key/Value形式的RDD,這裡預設兩個RDD的partition數量以及元素數量都相同,否則會丟擲異常
@Test
def test{
// zip 將兩個RDD組合成(key,value)的形式
val a = sc.makeRDD(1 to 5,2)
val b = sc.makeRDD(Seq("a","b","c","d","e"),2)
val zip1: RDD[(Int, String)] = a.zip(b)
val zip2: RDD[(String, Int)] = b.zip(a)
zip1.collect().foreach(print(_))//(1,a)(2,b)(3,c)(4,d)(5,e)
zip2.collect().foreach(print(_))//(a,1)(b,2)(c,3)(d,4)(e,5)
sc.stop()
}
- join 將兩個RDD按照相同的Key來進行連線
val a = sc.parallelize(Seq(("a",1),("b",2),("c",3)))
val b = sc.parallelize(Seq(("a",1),("d",4),("e",5)))
val join = a.join(b)
val r_join = a.rightOuterJoin(b)
val l_join = a.leftOuterJoin(b)
val f_join = a.fullOuterJoin(b)
join.collect().foreach(println(_))
/**
* (a,(1,1))
*/
r_join.collect().foreach(println(_))
/**
* (a,(Some(1),1))
* (d,(None,4))
* (e,(None,5))
*/
l_join.collect().foreach(println(_))
/**
* (a,(1,Some(1)))
* (b,(2,None))
* (c,(3,None))
*/
f_join.collect().foreach(println(_))
/**
* (a,(Some(1),Some(1)))
* (b,(Some(2),None))
* (c,(Some(3),None))
* (d,(None,Some(4)))
* (e,(None,Some(5)))
*/
- cogroup (otherDataset, [numTasks])是將輸入資料集(K, V)和另外一個資料集(K, W)進行cogroup,得到一個格式為(K, Seq[V], Seq[W])的資料集。
def cogroup(): Unit ={
val a = sc.parallelize(Seq(("aa",1),("bb",2),("cc",3)))
val b = sc.parallelize(Seq(("ee",10),("dd",20),("aa",30)))
val c = a.cogroup(b).collect()
c.foreach(println(_))
/**
* (cc,(CompactBuffer(3),CompactBuffer()))
* (aa,(CompactBuffer(1),CompactBuffer(30)))
* (dd,(CompactBuffer(),CompactBuffer(20)))
* (ee,(CompactBuffer(),CompactBuffer(10)))
* (bb,(CompactBuffer(2),CompactBuffer()))
*/
}
- lookup 用於(K,V)型別的RDD,指定K值,返回RDD中該K對應的所有V值
@Test
def test(): Unit ={
val m = sc.parallelize(Seq(("a",1),("b",2),("b",3),("a",11)))
m.lookup("a").foreach(println(_))
// 1
// 11
m.lookup("b").foreach(println(_))
// 2
// 3
}
相關文章
- Spark運算元:RDD基本轉換操作map、flatMapSpark
- 從零實現 k-v 儲存引擎儲存引擎
- Go實現簡單的K-V儲存Go
- Flink例項(五十): Operators(十)多流轉換運算元(五)coGroup 與union
- Spark 優化GroupByKey產生RDD[(K, Iterable[V])]Spark優化
- 丁俊:京東商城K-V儲存產品的演化之路
- 小蟻運動相機4k+評測 開啟4K 60p新紀元
- Spark----RDD運算元分類 DAGSpark
- 京東丁俊:京東分散式K-V儲存設計與挑戰分散式
- python操作k8sPythonK8S
- K8S 操作測試K8S
- 用k*k的方格覆蓋單元格(i,j),單元格可以被覆蓋幾次?
- Spark RDD運算元(八)mapPartitions, mapPartitionsWithIndexSparkAPPIndex
- spark RDD運算元(五)之鍵值對聚合操作combineByKeySpark
- Spark運算元:RDD行動Action操作學習–countByKey、foreach、sortBySpark
- 視訊格式轉換VideoProc Converter 4KIDE
- 【騰訊雲】招Golang!30K-60K!Golang
- 運維 從月薪 5K 和 50K ,中間都經歷了什麼?運維
- k2
- spark RDD textFile運算元 分割槽數量詳解Spark
- 【Spark篇】---Spark中Transformations轉換運算元SparkORM
- 【TVM系列三】運算元轉換呼叫流程
- [北京招聘] Go 工程師(20K-40K)Go工程師
- 領星(PHP工程師)(20K-35K)PHP工程師
- ZOJ 2745 01-K Code(DP)(轉)
- K氏讀書雜感——Java (轉)Java
- [LeetCode] Reverse Nodes in k-Group 每k個一組翻轉連結串列LeetCode
- k8s資源管理(基礎操作)K8S
- 第k大元素
- K近鄰模型模型
- K-單調
- 9.18k
- k8sK8S
- OPPO K1全面評測:螢幕指紋千元機, OPPO K1值得買嗎?
- [深圳][11K-20K] 招聘 PHP開發工程師PHP工程師
- [深圳][領星]PHP工程師(15K~30K)PHP工程師
- [北京望京] [15K-20K] 掘金招聘 iOS 開發iOS
- 來了,k8s!-----------------k8s叢集部署K8S