<strike id="ca4is"><em id="ca4is"></em></strike>
  • <sup id="ca4is"></sup>
    • <s id="ca4is"><em id="ca4is"></em></s>
      <option id="ca4is"><cite id="ca4is"></cite></option>
    • 二維碼
      企資網

      掃一掃關注

      當前位置: 首頁 » 企資快報 » 商業 » 正文

      Spark_WordCount_產生多少個_R

      放大字體  縮小字體 發布日期:2022-01-24 19:55:23    作者:百里韻鏵    瀏覽次數:22
      導讀

      曾經在一次面試中被問到 Spark WordCount 產生多少個 RDD,您知道么?下面通過源碼來說明經典得 WordCount 到底產生多少個 RDD。 import org.apache.spark.{SparkConf, SparkContext}object WordCount {def main(arg

      曾經在一次面試中被問到 Spark WordCount 產生多少個 RDD,您知道么?下面通過源碼來說明經典得 WordCount 到底產生多少個 RDD。

      import org.apache.spark.{SparkConf, SparkContext} object WordCount { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("WordCountApp").setMaster("local[2]") val sc = new SparkContext(conf) val wc = sc.textFile("hdfs://hadoop001:9000/data/wordcount.txt") .flatMap(x=>(x.split(","))).map(x=>(x,1)).reduceByKey(_+_) .saveAsTextFile("hdfs://hadoop001:9000/data/output") sc.stop() } } textFile()

      通過下面得源碼,可以看到在這個方法中先調用了一個 hadoopFile 方法再調用 map 方法

      hadoopFile 方法返回得是個 RDD(HadoopRDD),在對這個RDD調用map方法,

      點到map方法中可以看到 ,map方法中產生了一個MapPartitionsRDD

      也就是說 textFile 產生 2個 RDD分別是 HadoopRDD 和 MapPartitionsRDD

      flatMap ()

      flatMap 產生了一個 RDD,MapPartitionsRDD

      map()

      map 產生了一個 RDD,MapPartitionsRDD

      reduceByKey()

      這里要注意啦,reduceByKey 雖然是一個 rdd 調用得,但 reduceByKey 這個方法不是 RDD 中得方法,我們可以在 RDD 中找到如下得一個隱式轉換,當我們去調用reduceByKey 方法時,會發生隱式轉換,隱式得 RDD 轉化成了PairRDDFunctions這個類,reduceByKey 是 PairRDDFunctions 得方法

      reduceByKey 產生了一個RDD,ShuffledRDD

      saveAsTextFile()

      其實,在執行saveAsTextFile之前,我們可以通過RDD提供得toDebugString看到這些個算子在調用得時候到底產生了多少個RDD

      scala> val rdd = sc.textFile("file:///home/hadoop/data/wordcount.txt").flatMap(_.split(",")).map((_,1)).reduceByKey(_+_) rdd: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[9] at reduceByKey at <console>:24 scala> rdd.toDebugString res1: String = (2) ShuffledRDD[9] at reduceByKey at <console>:24 [] +-(2) MapPartitionsRDD[8] at map at <console>:24 [] | MapPartitionsRDD[7] at flatMap at <console>:24 [] | file:///home/hadoop/data/wordcount.txt MapPartitionsRDD[6] at textFile at <console>:24 [] | file:///home/hadoop/data/wordcount.txt HadoopRDD[5] at textFile at <console>:24 []總結

      我們可以看見在 Spark 得一個標準得 WordCount 中一共會產生 6 個 RDD,textFile() 會產生一個 HadoopRDD 和一個 MapPerPartitionRDD,flatMap() 方法會產生一個 MapPartitionsRDD,map() 方法會產生一個 MapPartitionsRDD ,reduceByKey() 方法會產生一個 ShuffledRDD,saveAsTextFile 會產生一個 MapPartitionsRDD,所以一共會產生 6 個 RDD。

      如果感覺上面得文章對各位有幫助,歡迎各位大佬我個人,感謝。

       
      (文/百里韻鏵)
      免責聲明
      本文僅代表作發布者:百里韻鏵個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
       

      Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

      粵ICP備16078936號

      微信

      關注
      微信

      微信二維碼

      WAP二維碼

      客服

      聯系
      客服

      聯系客服:

      在線QQ: 303377504

      客服電話: 020-82301567

      E_mail郵箱: weilaitui@qq.com

      微信公眾號: weishitui

      客服001 客服002 客服003

      工作時間:

      周一至周五: 09:00 - 18:00

      反饋

      用戶
      反饋

      午夜久久久久久网站,99久久www免费,欧美日本日韩aⅴ在线视频,东京干手机福利视频
        <strike id="ca4is"><em id="ca4is"></em></strike>
      • <sup id="ca4is"></sup>
        • <s id="ca4is"><em id="ca4is"></em></s>
          <option id="ca4is"><cite id="ca4is"></cite></option>
        • 主站蜘蛛池模板: 亚洲欧美精品在线| 国产在线步兵一区二区三区| 亚洲色成人网一二三区| a级国产乱理伦片在线观看| 男女无遮挡边摸边吃边做| 妞干网在线免费视频| 午夜成年女人毛片免费观看| 中国老熟妇自拍HD发布| 精品熟女少妇av免费久久| 成人18网址在线观看| 北条麻妃一区二区三区av高清| 中文字幕av无码不卡免费| 羞羞视频免费网站在线看| 性盈盈影院免费视频观看在线一区| 国产91精品系列在线观看| 三年片在线观看免费观看大全中国| 综合久久99久久99播放| 好男人在线观看高清视频www| 免费国产污网站在线观看| h国产在线观看| 波多野结衣在公众被强| 国产精品麻豆免费版| 国产精品久久久久久影视| 亚洲av日韩av无码av| 高h黄全肉一女n男古风| 日本69xxxx| 又硬又粗又长又爽免费看| t66y最新地址一地址二地址三 | 中文字幕日韩精品一区二区三区 | 久久久久久久性潮| 精品香蕉久久久午夜福利| 天堂网在线.www天堂在线资源| 亚洲精品成人av在线| 亚洲自国产拍揄拍| 日本加勒比在线精品视频| 又色又污又黄无遮挡的免费视| chinese激烈高潮HD| 欧美性生交xxxxx久久久| 国产成人综合久久精品红| 中文字幕精品一区二区| 男人j放进女人p全黄|