免费特黄视频_国产精品久久久av_久久香蕉网_国产精彩视频_中文二区_国产成人一区

二維碼
企資網

掃一掃關注

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

Spark_WordCount_產生多少個_R

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

曾經在一次面試中被問到 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

反饋

用戶
反饋

主站蜘蛛池模板: 成人午夜在线 | 久久久久久久久久久国产 | 亚洲视频区 | 久久黄色大片 | a级片久久 | 婷婷色在线 | 国产av一级毛片 | 久久不卡视频 | 国产区视频| 在线一级片 | 丁香综合网 | aaa一级片| 超碰在线视屏 | 香蕉视频一直看一直爽 | 97精品国产97久久久久久免费 | 中文字幕在线播放视频 | √天堂资源地址在线官网 | 亚洲一区二区在线 | 99av| av大全在线观看 | 怡红院av | 亚洲一区二区久久 | 曰韩一级片 | 国产免费一区 | 欧美三级韩国三级日本三斤在线观看 | 午夜在线影院 | 日本a级大片 | 日韩精品免费在线观看 | 欧美激情视频一区二区三区 | 精品一区二区在线视频 | 日韩和的一区二区 | 成人黄色av| 天天综合影院 | 大尺度做爰呻吟舌吻网站 | 亚洲精品日韩丝袜精品 | 免费观看全黄做爰大片视频美国 | 亚洲国产精 | 欧美福利在线观看 | 国产激情视频在线 | 国产精品欧美日韩 | 免费久久久 |