Scala編寫WordCount程式

2021-10-08 16:26:58 字數 1281 閱讀 4160

首先對於給定的乙個list陣列

val list =

list

("rose is beautiful"

,"jennie is beautiful"

,"lisa is beautiful"

,"jisoo is beautiful"

)/**

* 第一步,將list中的元素按照分隔符這裡是空格拆分,然後展開

* 先map(_.split(" "))將每乙個元素按照空格拆分

* 然後flatten展開

* flatmap即為上面兩個步驟的整合

*/val res0= list.

map(_.

split

(" "))

.flatten

val res1= list.

flatmap

(_.split

(" "))

println

("第一步結果"

)println

(res0)

println

(res1)

println

(res0)

println

(res1)

//結果與rose0相同

list

(rose,is,beautiful,jennie,is,beautiful,lisa,is,beautiful,jisoo,is,beautiful)

* 第二步是將拆分後得到的每個單詞生成乙個元組

* k是單詞名稱,v任意字元即可這裡是1

val res3=res1.

map(

(_,1))

* 第三步是根據相同的key合併

val res4=res3.

groupby

(_._1)

* 最後一步是求出groupby後的每個key對應的value的size大小,即單詞出現的個數 *

/ val res5=res4.

mapvalues

(_.size)

如果想一步到位寫完正常程式:

val res8 = list.

flatmap

(_.split

(" "))

.map

((_,1)

).groupby

(_._1)

.mapvalues

(_.size)

hadoop執行自帶例項wordcount

作業系統 ubuntu hadoop版本 3.1.3 cd usr local hadoop bin hdfs namenode format 格式化namenode sbin start dfs.shbin hdfs dfs mkdir input 新建input資料夾 bin hdfs dfs ...

Hadoop偽分布式執行wordcount小例子

先說點小知識 hadoop fs 使用面最廣,可以操作任何檔案系統 hadoop dfs和hdfs dfs只能操作hdfs相關的 先建資料存放目錄和結果輸出目錄 guo guo opt hadoop hadoop 2.7.2 hdfs dfs mkdir data input guo guo opt...

Hadoop偽分布式執行wordcount例子

1.進入hadoop目錄,新建乙個test.log檔案,cat命令檢視檔案內容 2.啟動yarn和dfs,一種是全部啟動start all.sh,另外一種分別啟動,如下圖的提示 4.把新建的檔案傳到hdfs的data input中,用ls命令檢視是否傳遞成功 5.進入mapreduce目錄 6.ls...