scala的语法写起来是非常的舒服的,相比java来说,简便许多。而Java在scala面前就显的略微有些笨重了。
接下来我们看一下scala版的wordcount
import scala.io.Source object testWC { def main(args: Array[String]): Unit = { // 读取D:Demohadoopinputword.txt val so_1 = Source.fromFile("D:\Demo\hadoop\input\word.txt").mkString val so_2 = Source.fromFile("D:\Demo\hadoop\input\wor.txt").mkString // 放入list集合 val list = List(so_1,so_2) val word: List[String] = list.flatMap(x => x.split(" ")).flatMap(x => x.split("\s")) // val tuples: List[(String, Int)] = word.map((_,1)) // 对key进行分组 val map = tuples.groupBy(_._1) // x=>x._1 // Map(String,List( // 开始统计分组后相同单词的个数,统计list集合的长度 // val res: Map[String, Int] = map.map(x=>(x._1,x._2.size)) // 第二种 val res: Map[String, Int] = map.mapValues(_.size) // println(res) // map.mapValues(x=>x.size) // 排序 val reverse = res.toList.sortBy(_._2).reverse // 打印 reverse.foreach(println) } }
相比java 要简便许多