reduceByKey(_+_) reduceByKey((x,y) => x+y)的用法
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
馬克-to-win @ 馬克java社區(qū):reduceByKey(_+_)是reduceByKey((x,y) => x+y)的一個(gè) 簡潔的形式
*/
val rdd08 = sc.parallelize(List((1, 1), (1, 4),(1, 3), (3, 7), (3, 5)))
val rdd08_1 = rdd08.reduceByKey((x, y) => x + y)
println("reduceByKey 用法 " + rdd08_1.collect().mkString(","))
sc.stop()
}
def myunion(rdd05: RDD[Int], rdd06: RDD[Int]): Unit = {
val res: RDD[Int] = rdd05.union(rdd06)
/*馬克-to-win @ 馬克java社區(qū):collect: 收集一個(gè)彈性分布式數(shù)據(jù)集的所有元素到一個(gè)數(shù)組中,這樣便于我們觀察,畢竟分布式數(shù)據(jù)集比較抽象。Spark的collect方法,是Action類型的一個(gè)算子,會(huì)從遠(yuǎn)程集群拉取數(shù)據(jù)到driver端。最后,將大量數(shù)據(jù)
匯集到一個(gè)driver節(jié)點(diǎn)上,將數(shù)據(jù)用數(shù)組存放,占用了jvm堆內(nèi)存,非常用意造成內(nèi)存溢出,只用作小型數(shù)據(jù)的觀察。*/
val arr = res.collect();
println("arr(0) is " + arr(0) + " arr(2) is " + arr(2) + " arr(4) is " + arr(4));
}
}
輸出結(jié)果:
map 用法 is 1,16,9,49,25
filter 用法 1,4,3
map2 用法 is 馬克-to-win @ 馬克java社區(qū):2,5,4,8,6
filter2 用法 馬克-to-win @ 馬克java社區(qū):4,7,5
arr(0) is 1 arr(2) is 3 arr(4) is 5
sum is 55
reduceByKey 用法 (1,8),(3,12)