Scala wordcounts

本文介绍了一种使用 Scala 编程语言实现 WordCount 的方法。通过构造 List 并进行一系列转换操作,包括切分字符串、映射、分组及排序等步骤,最终实现了对文本中单词出现频率的统计。
package scalapackage

/**
  * Created by Germmy on 2018/3/18.
  */
object WordCount {
  def main(args: Array[String]) {

    //目标一长串文章中同样单词的word count

    //构造一个List
    var myList=List("java is a beautiful girl china is so small","china is so big")

    //按空格切分再压平,当然可以直接用flattenMap
    var myList2=myList.map(_.split(" ")).flatten
//    println(myList2)
//    println(myList2.size)

    //执行结果:List(java, is, a, beautiful, girl, china, is, so, small, china, is, so, big)

    //转换为元组,用加1的方式来构造
    var map1=myList2.map((_,1))

//    println(map1)
    //执行结果:List((java,1), (is,1), (a,1), (beautiful,1), (girl,1), (china,1), (is,1), (so,1), (small,1), (china,1), (is,1), (so,1), (big,1))

    //按照元组的第1个元素来分组
    var map2=map1.groupBy(_._1)
//    println(map2)

    //取出map2的values,将它的长度算出来,其实就是单词的个数
    var map3=map2.mapValues(_.size)
//    println(map3)

    //排序,直接转化为list
    var list3=map3.toList.sortBy(_._2)
//    println(list3)

    //降序排列
    var list4=list3.reverse
    println(list4)//List((is,3), (china,2), (so,2), (girl,1), (small,1), (java,1), (a,1), (big,1), (beautiful,1))


  }
}

 

转载于:https://my.oschina.net/windows20/blog/1643030

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值