import scala.io.Source
/usr/local/src/data/The_man_of_property.txt
val lines = Source.fromFile("/usr/local/src/data/Tproperty.txt").getLines().toList
lines.flatMap(_.split(" ")).map((_,1))
---
map((_,1)) 等價(jià)于 map(x=>(x,1))
-------
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.size))
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.length))
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.map(_._2).sum))
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.map(_._2).reduce(_+_)))
因?yàn)閤._2是一個(gè)list武氓,所以對(duì)里面的求和轰胁,就是數(shù)組的一個(gè)求和
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>x._2.map)
--把結(jié)果放到list中
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.size)).toList
--排序飒筑,從小到大
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.size)).toList.sortBy(_._2)
--排序回官,從大到小
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.size)).toList.sortBy(_._2).reverse
--排好序后,取topN
top 10:
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(x=>(x._1,x._2.size)).toList.sortBy(_._2).reverse.slice(0,5)
==========================
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size)
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.map(_._2))
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.map(_._2).sum)
--由map形式轉(zhuǎn)換為array形式
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size).toArray
--排序
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size).toArray.sortWith(_._2>_._2)
sortBy(_._2).reverse 等價(jià) sortWith(_._2>_._2)
--切片衬吆,取TOP 10
lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size).toArray.sortWith(_._2>_._2).slice(0,10)
--去掉標(biāo)點(diǎn)符號(hào)秸滴,只取數(shù)字和字符
val p = "[0-9][a-z][A-Z]+".r
lines.flatMap(_.split(" ")).map(x=>(p.findAllIn(x).mkString(""),1)).groupBy(_._1).mapValues(_.size).toArray.sortWith(_._2>_._2).slice(0,10)