您的位置:首页 > 其它

用Scala语言完成一个简单的词频统计- Word Count;新手入门案例,原创!!

2020-06-28 05:12 471 查看

用Scala语言完成一个简单的词频统计- Word Count;新手入门案例 !!

  1. 数据尊卑
    先准备一个简单的数据:
    路径:C:\Users\Administrator\Desktop\work\hello.txt
    内容:hello world hello world hello world hello world

然后用Scala 完成对这个文件的词频统计 内容如下:

代码:

def main(args: Array[String]) {

/**
*  1 :List(txt)                   ===  得到一个List集合
*       List(hello world hello world hello world hello world)
*  2 :l.flatMap(_.split(" "))     ===  按照 " " 拆分,然后水平化处理得到一个集合,flatMap = flatten+map
*       List(hello, world, hello, world, hello, world, hello, world)
*  3 :.map(x =>(x,1))             === 把每一个元素变成 => (元素,1)
*       List((hello,1), (world,1), (hello,1), (world,1), (hello,1), (world,1), (hello,1), (world,1))
*  4 :.groupBy(_._1)              === //每一个map,按照它的第一个元素(_1) 分组, 例子(hello,1)._1 就是hello,然后按hello分组
*       Map(world -> List((world,1), (world,1), (world,1), (world,1)), hello -> List((hello,1), (hello,1), (hello,1), (hello,1)))
*  5 :.map(x=>(x._1,(x._2).size)) === 把集合中的元素第一个值,变成(值,个数)  例子:hello -> List((hello,1), (hello,1))) -> (hello,2)
*/

val txt = scala.io.Source.fromFile("C:\\Users\\Administrator\\Desktop\\work\\hello.txt").mkString
val l = List(txt)

val result = l.flatMap(_.split(" "))
.map(x =>(x,1))
.groupBy(_._1)
.map(x=>(x._1,(x._2).size))
println("统计结果"+result)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: