您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何使用Scala實現worldcount功能”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何使用Scala實現worldcount功能”吧!
新建ScalaWorldCount對象:
package com.ruozedata.day4
object ScalaWorldCount {
def main(args: Array[String]): Unit = {
val lines = List("hello ruoze hello jepson","hello ruoze hello jepson hello china")
/**第一種方法
* flatMap=map+flatten lines.flatMap 將數據壓扁
* flatMap(_.split(" ")) 拿到每一個元素(字符串),按照空格切割
* map((_,1)) 將單詞出現一次和1放在一起(放入元組)
* groupBy(_._1) 第一個_ 表示List中的每一個元組,取元組中的某一個元素用._n,即按照元組中的某一元素分組,返回是一個map
* map(t=>(t._1,t._2.size)) 第一個_ 拿到一個對偶元組,取元組中的第一個元組。_._2.size即是取對偶元組第二個的個數。
*
*/
val wc = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size)).toList // .sortBy(_._2).reverse
for(j <- 0 until wc.length) println(wc(j)+"\t")
/** 第二種方法
* foldLeft(0)(_+_._2)第一個_表示初始值或者上一次累加的結果 中第二個_ ,表示拿到的每一個元組,第三個元組的中第n個值
*/
val wc = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.foldLeft(0)(_+_._2))
for(i <- wc) println(i+"\t")
}
}
運行結果:
(china,1)
(ruoze,2)
(jepson,2)
(hello,5)
Process finished with exit code 0
感謝各位的閱讀,以上就是“如何使用Scala實現worldcount功能”的內容了,經過本文的學習后,相信大家對如何使用Scala實現worldcount功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。