所謂雙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...