Spark轉(zhuǎn)化和行動操作

1.轉(zhuǎn)化操作####

對一個數(shù)據(jù){1,2,3,3}的RDD進行基本的RDD轉(zhuǎn)化操作
(1)map()  將函數(shù)應(yīng)用于RDD中的每個元素,將返回新的RDD
       rdd.map(x => x+1)   返回{2,3,4,4 }
 (2) flatMap()  將函數(shù)應(yīng)用于RDD中的每個元素,將返回的迭代器
    的所有元素構(gòu)成的RDD。通常用于切分單詞。
    rdd.flatMap(x => x.to(3) ) 返回 {1,2,3,2,3,3,3}
 (3) filter()  返回一個由通過傳給filter()的函數(shù)的元素組成的RDD
    rdd.filter( x => x != 1 )  返回 {2,3,3}
 (4) distinct()  去重
    rdd.distinct()   返回 {1,2,3}
 (5) sample(withRepalcement,fraction,[seed])  對RDD采樣 ,以及是
     否替換。withRepalcement 是否為放回(不重復),fraction 為數(shù)量。
    rdd.sample(false,0.5) 非確定的,產(chǎn)生一般的數(shù)據(jù)

對數(shù)據(jù)分別為{1,2,3}和{3,4,5} 的RDD 進行針對兩個RDD的轉(zhuǎn)化操作
 (1)  union()  生成 一個包含兩個RDD 中所有元素的RDD 
    rdd.union(other)  結(jié)果:{1,2,3,3,4,5}
 (2)  intersection()   求兩個RDD共同的元素
    rdd.intersection(other) 結(jié)果: {3}
 (3) substract() 移除一個RDD中的內(nèi)容(例如移除訓練數(shù)據(jù))
    rdd.substract(other)  結(jié)果{1,2}
 (4) cartesian() 與另一個RDD的笛卡爾積  
    rdd.cartesian(other)  結(jié)果:{(1,3),(1,4),...}

2.行動操作####

  對一個數(shù)據(jù){1,2,3,3}的RDD進行基本的RDD行動操作
  (1) collect() 返回RDD中的所有元素 
      rdd.collect()  結(jié)果:{1,2,3,3}
  (2) count() RDD 中的元素個數(shù)  
      rdd.count()  結(jié)果: 4
  (3) countByValue() 各結(jié)果在RDD中出現(xiàn)的次數(shù)
    rdd.countByValue() 結(jié)果: {(1,1),(2,1),(3,2)}
  (4) take(num) 從RDD中返回num個元素
    rdd.take(2)  結(jié)果: {1,2}
  (5) top(num) 從RDD中返回前面的num個元素
    rdd.top(2)  結(jié)果: {3,3}
  (6)* takeOrdered(num)(ordering)  從RDD中按照提供的順序返回最前面的num個勻速
  (7) takeSample(withReplacement,num,[seed]) 從RDD中返回任意一些元素
   rdd.takeSample(false,1) 非確定的
  (8) reduce(func) 并行整合RDD中的所有數(shù)據(jù) 
      rdd.fold(0)((x,y) => x+y)  9
  (10) fold(zero)(func) 和reduce 一樣,但是需要提供初始值
    rdd.fold(0)((x,y) => x+y) 返回: 9 
  (11)* aggregate(zeroValue)(seq0p,comb0p) 和reduce 類似但是通常返回不同的數(shù)據(jù)
    rdd.aggregate((0,0))
  ((x,y) => (x._1 + y,x._2 +1 ),(x,y) => (x._1 + y._1, x._2 + y._2)) 
  結(jié)果: (9,4)
   (12)  foreach(func)  對RDD 中的每個元素使用給定的函數(shù) 
         rdd.foreach(func)  無
  
    注意:aggregate 函數(shù) 
    第一個函數(shù)的作用是把RDD中的元素合并起來放入累加器
    第二個函數(shù)的作用是:考慮到每個節(jié)點是在本地進行累加的,
        最后還需要提供一個函數(shù)將兩個累加器進行兩兩和合并

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容