二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 今日快报 » 正文

用scala统计单词个数一步一步详解你知道吗?

放大字体  缩小字体 发布日期:2022-03-30 14:57:14    浏览次数:332
导读

val lines = List("hello tom hello jerry", "hello jerry", "hello kitty")//先按空格切分val lines_1 = lines.map(_.split(" "))//压平val lines_2 = lines_1.flatten//用flatMap 两步合并成一步val words= lines.flatMap(_.split(" "))

val lines = List("hello tom hello jerry", "hello jerry", "hello kitty")

//先按空格切分

val lines_1 = lines.map(_.split(" "))

//压平

val lines_2 = lines_1.flatten

//用flatMap 两步合并成一步

val words= lines.flatMap(_.split(" "))

//将每一个单词映射为元组

val wordToOne = lines_3.map(x=>(x,1))

val wordToOne = lines_3.map((_,1))

//分组

val grouped = wordToOne.groupBy(_._1)

组内求和

val grouped_1 = grouped.map(t => (t._1,t._2.size))

//将map转化成List

val result = grouped_1.toList

//排序

val result_1 = result.sortBy(_._2).reverse

合并为一句

val words = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size)).toList.sortBy(_._2).reverse

val words = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size).toList.sortBy(_._2).reverse

val words = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.foldLeft(0)

(_+_._2)).toList.sortBy(_._2).reverse

从本地读取文件

[java] view plain copy

    package main.count import scala.io.Source object WordCounts { def main(args: Array[String]): Unit = { val lines=Source.fromFile("d:\\words.txt").getLines().toBuffer //val lines=lines.map(_.split(" ")).flatten.map(t=>(t,1)).groupBy(_._1).map(x=>(x._1,x._2.size)).toList.sortBy(_._2).reverse val lines1=lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size)).toList.sortBy(_._2).reverse println(lines1) } }
 
(文/小编)
免责声明
• 
本文仅代表发布者:个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈