Scala 之一行搞定WordCount

object Test extends App {
  val lines = List("hello csdn hello ksl hello asd asd dsudrf"
    , "i jirgjiji fnjadf"
    , "igbwi b u ue nnn ggnnugnrn"
    ,"nn wnui  g ngndu abd  abd jij ji  ji jj iji ji ji 1213 123123 12 3123 1213 00")

  val result1 = lines.flatMap(_.split(" "))
  //println(result1)

  val result2 = result1.map((s: String) => (s, 1))
  //println(result2)

  val result3 = result2.groupBy(_._1)
  //println(result3)

  val result4 = result3.map((t: (String, List[(String, Int)])) => t._1 -> t._2.size)
  //println(result4)

  val result5 = result4.toList.sortBy(_._2).reverse
  println(result5)
  println("**************************************************")

  // 一行代码搞定
  lines.flatMap(_.split(" ")).map((_, 1)).groupBy(_._1).map(x => x._1 -> x._2.size).toList.sortBy(_._2).foreach(print)
}


输出结果

(12,1)(dsudrf,1)(nnn,1)(ngndu,1)(fnjadf,1)(u,1)(123123,1)(igbwi,1)(ue,1)(i,1)(iji,1)(b,1)(wnui,1)(jij,1)(ksl,1)(3123,1)(g,1)(csdn,1)(00,1)(nn,1)(ggnnugnrn,1)(jj,1)(jirgjiji,1)(1213,2)(abd,2)(asd,2)(,3)(hello,3)(ji,4)


发布了125 篇原创文章 · 获赞 238 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_33709508/article/details/103519305
今日推荐