函数式编程实例WordCount
数据文件目录:
文件内容:
刚开始在写文件的时候以为val dirfile = new File("data")
这一行写的是具体文件,于是我写成了这样:
运行之后始终给我报空指针异常:
后面仔细研究文件,原来val dirfile = new File("data")
这行写的是数据文件的目录就行修改后终于实现了。
import java.io.File
import scala.io.Source
import collection.mutable.Map
object WordCount {
def main(args: Array[String]): Unit = {
val dirfile = new File("data")
val files = dirfile.listFiles
val results = Map.empty[String, Int]
for (file <- files) {
val data = Source.fromFile(file)
val strs = data.getLines.flatMap { s => s.split(" ") }
strs.foreach { word =>
if (results.contains(word))
results(word) += 1
else results(word) = 1
}
}
results foreach { case (k, v) => println(s"$k:$v") }
}
}
out:
Hadoop:1
I:2
love:2
Spark:1