Scala中使用两种方式对单词进行次数统计(wordCount)
来源:互联网 发布:淘宝渠道管理在哪里 编辑:程序博客网 时间:2024/05/22 02:17
使用Scala对单词数量进行统计:
假设有单词数组:
val arr = Array(“hello tom”,”hello jerry”,”hello hello”)
需要对Array中的每个单词进行统计计数。
可以使用如下方式:
方式一:
scala> arr.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size))res1: scala.collection.immutable.Map[String,Int] = Map(tom -> 1, jerry -> 1, hello -> 4)
解释说明:
1、 arr.flatMap(_.split(” “)) //相当于是将Array中的数组进行压缩,下划线代表的是Arrary中的每个元素,并且按照” “进行切分,运行后的结果如下:
scala> arr.flatMap(_.split(" "))res0: Array[String] = Array(hello, tom, hello, jerry, hello, hello)
2、 接着对map中的每个元素进行汇总计算
scala> arr.flatMap(_.split(" ")).map((_,1))res2: Array[(String, Int)] = Array((hello,1), (tom,1), (hello,1), (jerry,1), (hello,1), (hello,1))
解释说明:
这里的map((_,1))相当于是将前面的Array变成元组的形式
3、接着把array进行分组:
scala> arr.flatMap(.split(” “)).map((,1)).groupBy(_._1)
res3: scala.collection.immutable.Map[String,Array[(String, Int)]] = Map(tom -> Array((tom,1)), jerry -> Array((jerry,1)), hello -> Array((hello,1), (hello,1), (hello,1), (hello,1)))
解释说明:
这里的意思是将上面的array按照key的方式进行分组
4、最后将结果进行求和
arr.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size))
其中t._1就是上面的单词作为key,value是t._2.size,即Array的大小
方式二:
arr.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.foldLeft(0)(_+_._2))
其中:
arr.flatMap(.split(” “)).map((,1)).groupBy(_._1),这里和上面的一样,不用赘述
scala> arr.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)res4: scala.collection.immutable.Map[String,Array[(String, Int)]] = Map(tom -> Array((tom,1)), jerry -> Array((jerry,1)), hello -> Array((hello,1), (hello,1), (hello,1), (hello,1)))
mapValues的用途是直接将Array的内容进行按照key相同的进行统计计算。
.foldLeft(0)(+._2) 第一个下划线表示的是的是数组中的key,意思是分别取出其中的Array集合,.foldLeft(0)(+_.2)表示将Array进行求和,后边括号中的第一个下划线表示的是处事值0,第二个下划线是表示的是元组,.2表示的是元组中的第二个值,即单词出现的次数。
- Scala中使用两种方式对单词进行次数统计(wordCount)
- 对文本中不同单词出现的次数统计
- 通过MapReduce统计每个单子在每个文件中出现的次数(FileSplit的使用),单词作为key,所在文本和次数作为value进行统计
- 统计一篇英文文件中,单词出现的次数,并按单词的长度进行排序
- Scala 统计一个文件夹下面所有单词出现的次数
- hadoop基础----hadoop实战(三)-----hadoop运行MapReduce---对单词进行统计--经典的自带例子wordcount
- 统计文章中单词出现的次数
- 统计英文文章中单词出现次数
- linux 统计文件中单词出现次数
- 统计文章中单词出现的次数
- python统计文本中单词出现次数
- 四种方式对数据进行统计
- scala 对 字符串 Wordcount
- Spark Streaming从Kafka中获取数据,并进行实时单词统计,统计URL出现的次数
- 初探map()——对一个文件进行统计其中各个单词出现的次数,并按次数从高到低的顺序进行排序
- storm程序-单词统计wordcount
- 统计单词次数
- 统计单词出现次数
- 解决:grunt-contrib-jshint插件支持es6 syntax的问题
- 数据库存储引擎的数据文件
- springboot(十三):springboot小技巧
- 深入java并发体系
- IDEA 打war包
- Scala中使用两种方式对单词进行次数统计(wordCount)
- 通过HttpURLConnection抓取图片
- dubbo运行流程
- 浙大PAT甲级-1007
- SHAR1,获取不同,release版本SHAR1,debug版本SHAR1,导致定位失败,经纬度获取为0
- springboot(十四):springboot整合shiro-登录认证和权限管理
- abstract与interface
- 新的开始
- caffe 添加Python层