大數據 - 第十一課 : idea實現wordcount程序

(關鍵概念)RDD操作,惰性求值/

  1. 從本地文件系統中加載數據創建RDD
    1
    讀取文件:val lines = sc.textFile(“file:///home/cmj/student00/test/wordcount.txt”)
    分詞:val aftermap = lines.map(x=>x.split(" "))
    res1: Array[String] = Array(hello world yep, hello world, hello)
    將分詞結果轉換爲鍵值對,例(hello,3)val mkKV=aftermap.map((_,1))
    2
    聚合:val afterreduce=mkKV.reduceByKey((x,y)=>(x+y))
    2
    保存:afterreduce.saveAsTextFile(“file:///home/cmj/student00/test/wordout1”)
    3

寫在一行裏面:sc.textFile("file:///home/cmj/student00/test/wordcount.txt").flatMap(x=>x.split(" ")).map((_,1)).reduceByKey((x,y)=>(x+y)).saveAsTextFile("file:///home/cmj/student00/test/wordout2")

  1. 全路徑打開idea
    4
    新建project
    5

6
新建包
7
新建類
8
新建Object
9
實驗主程序
11

12

添加java包

13
編輯Configurations,添加信息:
14
15
運行退出碼是0說明運行成功
16
3. RDD分區
RDD是彈性分佈式數據集,通常RDD很大,會被分成很多個分區,分別保存在不同的節點上
分區的作用(1)增加並行度(2)減少通信開銷
RDD分區的一個原則是使得分區的個數儘量等於集羣中的CPU核心(core)數目
對於不同的Spark部署模式而言(本地模式、Standalone模式、YARN模式、Mesos模式),都可以通過設置spark.default.parallelism這個參數的值,來配置默認的分區數目
創建RDD時手動指定分區個數
在調用textFile()和parallelize()方法的時候手動指定分區個數即可,語法格式如下:
sc.textFile(path, partitionNum)
其中,path參數用於指定要加載的文件的地址,partitionNum參數用於指定分區個數。

16
17

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章