RDD的 transformations 和 actions 總結 | 入駐第十八天

RDD的transformations和actions

兩個RDD:一個RDD包含 {1, 2, 3} , 另外一個RDD包含{3, 4, 5}算法

函數名 功能 例子 結果
map() 對每一個元素應用函數 rdd.map(x=>x+1) {2,3,4,4}
intersection() 交集 rdd.intersection(other) {3}
subtract() 取存在第一個RDD,而不存在第二個RDD的元素(使用場景,機器學習中,移除訓練集) rdd.subtract(other) {1,2}
cartesian() 笛卡兒積 rdd.cartesian(other) { (1,3), (1,4), ..... (3,5) }
colletc() 返回RDD的全部元素 rdd.collect() {1,2,3,3}
count() 計數 rdd.count() 4
countByValue() 返回一個map,表示惟一元素出現的個數 rdd.countByValue() { (1,1) ,(2,1), (3,2) }
take(num) 返回num個元素 rdd.take(2) {1,2}
top(num) 返回前num個元素 rdd.top(2) {3 , 3}
takeOrdered(num)(ordering) 返回基於的排序算法的前幾個元素 rdd.takeOrdered(2)(MyOrdering) {3, 3}
takeSample(withReplacement,num,[seed]) 取樣例 rdd.takeSample(false, 1) 不肯定
reduce(func) 合併RDD中的元素 rdd.reduce((x, y ) => x+y ) 9
fold(zero)(func) 與reduce()類似提供zero value rdd.flod(0)((x, y ) => x+y ) 9
aggregate(zeroValue)(seqOp,combOp) 與fold()類似,返回不一樣類型 rdd.aggregate((0, 0) (x, y)) => (x._1 +y , x._2 + 1), (x, y)=>(x._1 +y ._1, x._2 + y._2), (9 , 4)
foreach(func) 對RDD的每一個元素做用函數,上面也不返回 rdd.foreach(func) 什麼也沒有
相關文章
相關標籤/搜索