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 要简便许多

相关文章:

  • 2021-05-07
  • 2022-02-03
  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
  • 2021-12-04
猜你喜欢
  • 2021-08-28
  • 2021-05-29
  • 2021-07-20
  • 2021-07-28
相关资源
相似解决方案