【发布时间】:2018-04-29 11:36:47
【问题描述】:
我需要使用 Scala 聚合文本文件中单词的元音组合。例如,如果文本文件是: “这是一个文本文件。”
输出将类似于 (i,2) (a,1) (e,1) (ei,1)
我是 spark/scala 的新手,所以请原谅我的无知。
我当前的代码:
val wordsFile = sc.textFile("test.txt");
val flattenMap = wordsFile.flatMap(line => line.split(" "))
我制作了一个小元音函数来检查每个字符,但我不确定如何正确实现它。
def isVowel(letter: Char): Boolean = {
letter match {
case 'a' => true;
case 'e' => true;
case 'i' => true;
case 'o' => true;
case 'u' => true;
case _ => false;
}
如何遍历 flattenMap 中的每个单词并将元音存储在新地图中? 谢谢。
【问题讨论】:
-
你能解释一下输出 (ei,1) 吗?
-
最后一个单词“file”包含元音'e'和'i'。
-
那么你也可以说它包含(即1)不是吗?如果它回答了您的问题,请在下面查看我的回答
-
我可以看到元音需要按字母顺序而不是单词中的顺序,但是你能澄清一下如果单词中有两个相同的元音会发生什么吗? “the”和“there”有相同的“元音组合”还是一个“e”和另一个“ee”?
标签: scala apache-spark