scala简单入门_wordCount

scala的语法写起来是非常的舒服的,相比java来说,简便许多。而Java在scala面前就显的略微有些笨重了。

接下来我们看一下scala版的wordcount

import scala.io.Source

object testWC {
  def main(args: Array[String]): Unit = {
    // 读取D:\Demo\hadoop\input\word.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("\n")).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 要简便许多

posted @ 2018-11-05 19:53  董秀才  阅读(3215)  评论(0编辑  收藏  举报