Spark RDD程式設計(2) 雙Value型別互動

2022-01-26 12:31:14 字數 1716 閱讀 9775

所謂雙value,就是兩個資料集rdd之間進行操作。

1 union(otherdataset):對源rdd和引數

rdd合併後返回乙個新的

rdd,不會去重

val listrdd1: rdd[int] = sc.makerdd(1 to 5)

val listrdd2: rdd[int] = sc.makerdd(5 to 10)

val union: array[int] = listrdd1.union(listrdd2).collect()

println(union.mkstring(",")) //1,2,3,4,5,5,6,7,8,9,10

2 subtract (otherdataset):計算差的一種函式,去除兩個rdd中相同的元素,不同的

rdd將保留下來

val listrdd3: rdd[int] = sc.makerdd(1 to 8)

val listrdd4: rdd[int] = sc.makerdd(4 to 10)

val subtract: array[int] = listrdd3.subtract(listrdd4).collect()

println(subtract.mkstring(",")) //1,2,3

3 intersection(otherdataset):對源rdd和引數

rdd求交集後返回乙個新的

rdd

val listrdd5: rdd[int] = sc.makerdd(1 to 4)

val listrdd6: rdd[int] = sc.makerdd(2 to 6)

val intersection: array[int] = listrdd5.intersection(listrdd6).collect()

println(intersection.mkstring(",")) //4,2,3

4 cartesian(otherdataset):笛卡爾積(盡量避免使用)

val listrdd7: rdd[int] = sc.makerdd(1 to 3)

val listrdd8: rdd[int] = sc.makerdd(4 to 6)

val cartesian: array[(int, int)] = listrdd7.cartesian(listrdd8).collect()

println(cartesian.mkstring(",")) //(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)

5 zip(otherdataset):將兩個rdd組合成

key/value

形式的rdd,

這裡預設兩個

rdd的

partition

數量以及元素數量都相同,否則會丟擲異常。

val listrdd9: rdd[int] = sc.makerdd(1 to 4, 3)

val listrdd10: rdd[char] = sc.makerdd(list('a', 'b', 'c', 'd'), 3)

val zip: array[(int, char)] = listrdd9.zip(listrdd10).collect()

println(zip.mkstring(",")) //(1,a),(2,b),(3,c),(4,d)

spark RDD程式設計

rdd就是乙個不可變的分布式物件集合。建立rdd 1 讀取乙個外部資料集 sparkcontext.textfile 2 在驅動器程式中對乙個集合進行並行化。rdd 操 作 1 轉 化 操 作 transformation 會由乙個 rdd 生成乙個新的 rdd。2 行 動 操 作 action 會...

Val程式設計 val系列程式設計思想

利用val語言可以編寫出各種各樣的應用程式。正如windows phone面臨的窘境一樣,受眾太小,市場不大。應用程式不多,所以也談不上成熟。國內的應用程式基本上就是簡單的小程式,談不上什麼程式設計思想。國外許多都是基於kernel的而衍生出面向各種應用的程式。1.模板思維.由於val是基於過程而非...

Val程式設計 介面程式設計

由於示教盒是乙個黑白的解析度為 14 40 的液晶屏,使用者互動不是很好,介面不友好。而且沒有滑鼠導航與觸控螢幕。介面程式設計函式 1.void cls 2.void title string stext 3.void put string stext void put num nvalue 4.v...