WordCount程序主要是统计单词出现次数的程序,本例中将给出一个简单的本地单机WorldCount程序。
说明:首先建立一个文本文件,在文本文件中写入若干单词,每个单词占一行,程序每读一行即读入一个单词,然后对相同的单词进行分组并统计。
设在G盘根目录下建立个words文件,里面写入:
hello
hadoop
hello
spark
hive
mysql
hadoop
hive
pig
mysql
保存退出。
程序:
import scala.io.Source
object WordCount {
def main(args: Array[String]): Unit = {
val list = Source.fromFile("g:/words.txt").getLines().toList //读取文件每一列并将其转换成List
.map { x=> (x,1) } //将其转换为元组
.groupBy { x=> x._1 } //按元组中的第一个元素归类
.mapValues{ list => list.map { tuple => tuple._2 }.reduce {(x,y) => x+y} }//统计
println(list)
}
结果:
Map(hadoop -> 2, spark -> 1, hive -> 2, mysql -> 2, hello -> 2, pig -> 1)