Scala实现WordCount

世上没有什么困难的事,只有不去努力的人,即使一个小小的问题,如果你都不去操作的话,你永远不能体会那个过程,,一遍不行,我们来2遍,,,,反反复复,千锤百炼,,,
—————————————送给正在努力的你

Scala实现WordCount

object ScalaWordCountAPP {
  def main(args: Array[String]): Unit = {
    val lins = List("hello java python", "hello java", "hello scala java scala hello")
    //切开压平
    val words = lins.flatMap(_.split(" "))
    //把每个单词生成一个一个的tuple
    val tuples = words.map((_, 1))
    //一key进行分组
    val grouped = tuples.groupBy(_._1)
    //统计value的长度
    val sumed = grouped.mapValues(_.size)
    //排序
    val sorted = sumed.toList.sortBy(_._2)
    //降序排列
    val result =sorted.reverse
    println( result)

  }
 }

结果显示

List((hello,4), (java,3), (scala,2), (python,1))
Process finished with exit code 0

在xshell上操作流程

scala> val lins = List("hello java python", "hello java", "hello scala java scala hello")
lins: List[String] = List(hello java python, hello java, hello scala java scala hello)

scala>  val words = lins.flatMap(_.split(" "))
words: List[String] = List(hello, java, python, hello, java, hello, scala, java, scala, hello)

scala>  val tuples = words.map((_, 1))
tuples: List[(String, Int)] = List((hello,1), (java,1), (python,1), (hello,1), (java,1), (hello,1), (scala,1), (java,1), (scala,1), (hello,1))

scala> val grouped = tuples.groupBy(_._1)
grouped: scala.collection.immutable.Map[String,List[(String, Int)]] = Map(scala -> List((scala,1), (scala,1)), java -> List((java,1), (java,1), (java,1)), hello -> List((hello,1), (hello,1), (hello,1), (hello,1)), python -> List((python,1)))

scala> val sumed = grouped.mapValues(_.size)
sumed: scala.collection.immutable.Map[String,Int] = Map(scala -> 2, java -> 3, hello -> 4, python -> 1)

scala> val sorted = sumed.toList.sortBy(_._2)
sorted: List[(String, Int)] = List((python,1), (scala,2), (java,3), (hello,4))

scala> val result =sorted.reverse
result: List[(String, Int)] = List((hello,4), (java,3), (scala,2), (python,1))
整体来一遍:
scala> 
scala> lins.flatMap(_.split(" ")).map((_, 1)).groupBy(_._1).mapValues(_.size).toList.sortBy(_._2)
res8: List[(String, Int)] = List((python,1), (scala,2), (java,3), (hello,4))

万事皆有方法,现在的你没有找到,没有关系,只要你不断坚持,终会发现,,,
—————————————送给正在寻找问题的你

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值