Scala 计算文本文件中的模式数

Scala 计算文本文件中的模式数,scala,apache-spark,Scala,Apache Spark,我有一个巨大的文本文件。我想要一个字数出现在我从文本文件中感觉到的短语之后 下面是文件的一个小示例: i feel awesome i feel nothing but i also feel awesome i feel good. 我阅读文本文件并匹配包含我感觉的行。现在,我的输出形式为: res3: Array[String] = Array("awesome", "nothing", "good", ....) 我需要在文本文件中查找这些单词的出现情况 我目前为此目的使用的代码如下:

我有一个巨大的文本文件。我想要一个字数出现在我从文本文件中感觉到的短语之后

下面是文件的一个小示例:

i feel awesome
i feel nothing but i also feel awesome
i feel good.
我阅读文本文件并匹配包含我感觉的行。现在,我的输出形式为:

res3: Array[String] = Array("awesome", "nothing", "good", ....)
我需要在文本文件中查找这些单词的出现情况

我目前为此目的使用的代码如下:

 val c1 = scala.io.Source.fromFile("text.txt", "UTF-8").
   getLines.flatMap(regexpr.findAllIn(_).toList).
   foldLeft(Map.empty[String, Int]) {
     (count, word) => count + (word -> (count.getOrElse(word, 0) + 1))
   }
但这让我只计算了数组中存在的几个单词。 例如,它返回:

c1: scala.collection.immutable.Map[String,Int] = Map(awesome -> 1, nothing -> 4) 

它不会返回列表中所有单词的计数。此外,如何将映射[String,Int]写入文本文件?

以下是文本文件中的行列表:

val lines = scala.io.Source.fromFile("text.txt","UTF-8").getLines
lines.flatMap {
  "i feel (\\w+)".r.findAllMatchIn(_).map(_.group(1)) // Return only paren matches
}.toTraversable.groupBy(identity).mapValues(_.size).foreach {
  case (word, count) => f.write(s"$count\t$word\n") // Separate by tab
}
下面是一个Java打印编写器:

val f = new java.io.PrintWriter(new java.io.File("counts.txt"))
下面是将我感觉语句写入文本文件后的单词匹配项分组:

val lines = scala.io.Source.fromFile("text.txt","UTF-8").getLines
lines.flatMap {
  "i feel (\\w+)".r.findAllMatchIn(_).map(_.group(1)) // Return only paren matches
}.toTraversable.groupBy(identity).mapValues(_.size).foreach {
  case (word, count) => f.write(s"$count\t$word\n") // Separate by tab
}
然后关闭文件

f.close()

请参阅您所引用的解决方案的可能副本,该副本不会返回所有实例。我已经更新了原始注释中的代码,请检查我更新的问题。你没有抓住要点。我需要在大文本文件中找到特定数组中的字符串。非常感谢: