Spark RDD操作 Python 總結

2021-07-12 00:12:59 字數 1900 閱讀 5530

map(func)

將原rdd中每個元素代入帶入func

1

23

>>> rdd = sc.parallelize([1, 2, 3])

>>> rdd.map(lambda x: x*x).collect()

[1, 4, 9]

filter(func)

返回包含所有在func中結果為true

1

23

>>> rdd = sc.parallelize([1,2,3])

>>> rdd.filter(lambda x: x > 2).collect()

[3]

flatmap(func)

將原rdd中的每乙個元素對映為0個或者多個元素,每次map過程的返回值必須是集合(可空)

123

4

>>> rdd = sc.parallelize([1,2,3])

>>> rdd.flatmap(lambda x: range(1, x))

// || [1] || [1

2][1, 1, 2]

func方法分別應用於各個分割槽

123

45

>>> rdd = sc.parallelize([1,2,3,4], 2)

// 兩個分割槽的資料分別為 [1,2] [3,4]

>>>

deff

(x):

yield sum(x)

[3, 7]

123

45

>>> 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隨機種子數

1

23

>>> rdd = sc.parallelize(range(100))

>>> rdd.sample(false, 0.2, 81).count()

24

union(rdd)

合併兩個已有的rdd,返回新乙個的新的rdd

intersection(rdd)
求兩個rdd的交集,並去重,會引發洗牌操作

123

4

>>> 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 會...