这个代码实现的统计单词出现的次数:
object WordCount {
def main(args: Array[String]): Unit = {
val lines = List("hadoop hive spark scala","spark hive habase",
"hive spark java")
//数据转换
val mappedWords = lines.flatMap(_.split(" ").map(_.trim)).filterNot(_
.isEmpty).map((_,1))
println("---------------输出分割后的值-----------------")
println(mappedWords)
//根据数据进行分组
val groupedWords: Map[String, List[(String, Int)]] = mappedWords.groupBy(tuple=>tuple._1)
//每组进行数据计算
println("---------------输出分组后的值-----------------")
println(groupedWords)
val result = groupedWords.map(tuple=>{
//获得Word单词(key)
val word = tuple._1
//计算该Word对应的数量(value)
val count = tuple._2.map(t=>t._2).sum
//返回结果
(word,count)
})
println("---------------输出合并后的值-----------------")
println(result)
println("---------------转换成list的值-----------------")
println(result.toList)
}
}
本文介绍了一个使用Scala编写的代码片段,该代码用于统计一组字符串中各个单词的出现频率。通过flatMap、groupBy和map等高阶函数,实现了从原始数据到单词计数结果的有效转换。
4990

被折叠的 条评论
为什么被折叠?



