Spark (4) Actions (下)
1. takeSample:
對 RDD 進行抽樣,可以選擇抽樣出來的元素是否重複。
takeSample(withReplacement, num, [seed])
val a = sc.parallelize(1 to 10) a.takeSample(true, 3) a.takeSample(false, 3)
2. reduce:
將函式迭代兩相同型別的元素進行運算。
a.reduce((x,y)=> x+y) res0: Int = 55
3. fold:
類似 reduce 需要給定一個基值。
a.fold(0)((x,y)=>x+y) res1: Int = 55 a.fold(5)((x,y)=>x+y) res2: Int = 100
4. map-reduce 的方法計算平均值:
val a = sc.parallelize(1 to 10) val b = a.map((_, 1)) val c = b.reduce((x, y)=>(x._1+y._1, x._2+y._2)) val mean = (c._1.toFloat)/c._2
5. aggregate 計算平均值:
跟 map-reduce 類似但比較精簡的寫法。
val res = a.aggregate((0,0))( (acc, value)=> (acc._1+value, acc._2+1), // map (x, y)=> (x._1+y._1, x._2+y._2) // reduce ) val mean = res._1/res._2.toFloat
留言
張貼留言