要求⽤scala不使用spark算子实现统计⽂本⽂件: 1.出现了多少单词 2.出现了每个单词出现的次数 3.再根据单词出现的次数倒序排列。
时间: 2023-12-09 17:06:05 浏览: 90
可以使用Scala内置的函数库来实现这个需求。
1. 统计单词数量
可以使用以下代码来统计单词数量:
```scala
val filePath = "path/to/file.txt"
val lines = scala.io.Source.fromFile(filePath).getLines().toSeq
val words = lines.flatMap(_.split("\\W+"))
val wordCount = words.length
```
2. 统计每个单词出现的次数
可以使用以下代码来统计每个单词出现的次数:
```scala
val wordCounts = words.groupBy(identity).mapValues(_.size)
```
3. 根据单词出现次数倒序排列
可以使用以下代码根据单词出现次数倒序排列:
```scala
val sortedWordCounts = wordCounts.toSeq.sortWith(_._2 > _._2)
```
完整代码如下:
```scala
val filePath = "path/to/file.txt"
val lines = scala.io.Source.fromFile(filePath).getLines().toSeq
val words = lines.flatMap(_.split("\\W+"))
val wordCount = words.length
val wordCounts = words.groupBy(identity).mapValues(_.size)
val sortedWordCounts = wordCounts.toSeq.sortWith(_._2 > _._2)
println(s"Total number of words: $wordCount")
println("Word counts:")
sortedWordCounts.foreach { case (word, count) =>
println(s"$word: $count")
}
```
阅读全文