map(func)
將原rdd中每個元素代入帶入func
123
>>> rdd = sc.parallelize([1, 2, 3])>>> rdd.map(lambda x: x*x).collect()
[1, 4, 9]
filter(func)
返回包含所有在func
中結果為true
123
>>> rdd = sc.parallelize([1,2,3])>>> rdd.filter(lambda x: x > 2).collect()
[3]
flatmap(func)
將原rdd中的每乙個元素對映為0個或者多個元素,每次map過程的返回值必須是集合(可空)
1234
>>> rdd = sc.parallelize([1,2,3])>>> rdd.flatmap(lambda x: range(1, x))
// || [1] || [1
2][1, 1, 2]
將func
方法分別應用於各個分割槽
12345
>>> rdd = sc.parallelize([1,2,3,4], 2)// 兩個分割槽的資料分別為 [1,2] [3,4]
>>>
deff
(x):
yield sum(x)
[3, 7]
12345
>>> rdd = sc.parallelize([1,2,3,4], 2)>>>
deff
(i, x):
yield i*sum(x)
//[0*(1+2), 1*(3+4)]
[0, 7]
sample(withreplacement, fraction, seed)
對已有的rdd進行取樣,
withreplacement
布林型, 表示是否用隨機值替換
fraction
取樣比例
seed
隨機種子數
123
>>> rdd = sc.parallelize(range(100))>>> rdd.sample(false, 0.2, 81).count()
24
union(rdd)
合併兩個已有的rdd,返回新乙個的新的rddintersection(rdd)
求兩個rdd的交集,並去重,會引發洗牌操作
1234
>>> rdd1 = sc.parallelize([1, 2, 3, 4])>>> rdd2 = sc.parallelize([3, 4, 5, 6])
>>> rdd1.intersection(rdd2).collect()
[3,4]
distinct()
對rdd的元素去重groupbykey()
SparkRDD操作經驗
可以指代集合中的每乙個元素 篩選出可以被2整除的數 a.filter 2 0 map 2 注 在reducebykey中指代的是鍵值對中的值 參考 將某些經過了複雜計算得到的rdd存入快取中,避免下次呼叫時重複計算 將userinfomation這個rdd儲存到快取中 userinfomation....
spark RDD基礎裝換操作 zip操作
將數字1 3組成的rdd,與字母a到c組成的rdd應用拉鍊 zip 操作,合併到乙個新的rdd中。scala val rdddata1 sc.parallelize 1 to 10,5 rdddata1 org.apache.spark.rdd.rdd int parallelcollectionr...
spark RDD程式設計
rdd就是乙個不可變的分布式物件集合。建立rdd 1 讀取乙個外部資料集 sparkcontext.textfile 2 在驅動器程式中對乙個集合進行並行化。rdd 操 作 1 轉 化 操 作 transformation 會由乙個 rdd 生成乙個新的 rdd。2 行 動 操 作 action 會...