Spark RDD 行動運算元

2021-10-22 14:04:22 字數 2700 閱讀 4895

所謂的行動運算元,其實就是用於觸發rdd執行的方法

spark中,呼叫rdd物件的行動運算元,會執行作業,每一次呼叫,都會執行不同的作業

reduce:聚集rdd中的所有元素,先聚合分區內資料,再聚合分區間資料

val rdd: rdd[int]

= sc.

makerdd

(list(1

,2,3

,4),

2)rdd.

map(_*2)

val i: int = rdd.

reduce

(_+_)

rdd.

collect()

println

(i)

collect:在驅動程式(driver)中,以陣列array的形式返回資料集的所有元素

collect運算元會按照分割槽編號採集資料

collect會將分布式的資料彙總到driver端

val rdd: rdd[int]

= sc.

makerdd

(list(1

,2,3

,4))

// 收集資料到driver

rdd.

collect()

.foreach

(println)

count:返回rdd中元素的個數

val rdd: rdd[int]

= sc.

makerdd

(list(1

,2,3

,4))

val l: long = rdd.

count()

print

(l)

first:返回rdd中的第乙個元素

val rdd: rdd[int]

= sc.

makerdd

(list(1

,2,3

,4))

val i: int = rdd.

first()

println

(i)

take:返回乙個由rdd的前n個元素組成的陣列

val rdd: rdd[int]

= sc.

makerdd

(list(1

,2,3

,4))

val i: array[int]

= rdd.

take(2

) i.

foreach

(println)

takeordered:返回該rdd排序後的前n個元素組成的陣列

val rdd: rdd[int]

= sc.

makerdd

(list(1

,2,3

,4))

val ints: array[int]

= rdd.

takeordered(3

)(ordering.int.reverse)

ints.

foreach

(println)

aggregate:分割槽的資料通過初始值和分區內的資料進行聚合,然後再和初始值進行分區間的資料聚合

運算元的初始值再分區內和分區間都會參與運算

fold:摺疊操作,aggregate的簡化版操作

val rdd: rdd[int]

= sc.

makerdd

(list(1

,2,3

,4),

2)val result: int = rdd.

aggregate(2

)(_+_,_+_)

val result1: int = rdd.

fold(2

)(_+_)

println

(result)

println

(result1)

countbykey:統計每種key的個數

val rdd: rdd[

(int, string)

]= sc.

makerdd

(list((

1,"a"),(

1,"a"),(

1,"a"),(

2,"b"),(

3,"c"),(

3,"c")))

val map: collection.map[int, long]

= rdd.

countbykey()

map.

foreach

(println)

foreach:分布式遍歷rdd中的每乙個元素,呼叫指定函式

SparkRDD運算元 sample運算元

val newrdd oldrdd.sample withreplacement,fraction,seed withreplacement表示是抽出的資料是否放回,true為有放回的抽樣,false為無放回的抽樣 fraction表示隨機抽樣的資料數量 seed用於指定隨機數生成器種子 def s...

Spark RDD運算元介紹

spark學習筆記總結 spark可以用於批處理 互動式查詢 spark sql 實時流處理 spark streaming 機器學習 spark mllib 和圖計算 graphx spark是mapreduce的替代方案,而且相容hdfs hive,可融入hadoop的生態系統,以彌補mapre...

Spark RDD運算元介紹

spark學習筆記總結 spark可以用於批處理 互動式查詢 spark sql 實時流處理 spark streaming 機器學習 spark mllib 和圖計算 graphx spark是mapreduce的替代方案,而且相容hdfs hive,可融入hadoop的生態系統,以彌補mapre...