【发布时间】:2015-11-03 21:33:45
【问题描述】:
我想从我的文件中过滤掉字母数字和数字单词。我正在研究 Spark-Shell。这些是我的文件 sparktest.txt 的内容:
这是 1 个文件,而不是 54783。你想把这个文件写成 Writt3n 吗? HDFS?
定义要收集的文件:
scala> val myLines = sc.textFile("sparktest.txt")
将该行保存到一个长度大于 2 的单词的数组中:
scala> val myWords = myLines.flatMap(x => x.split("\\W+")).filter(x => x.length >2)
定义要使用的正则表达式。我只想要匹配“[A-Za-z]+”的字符串:
scala> val regexpr = "[A-Za-z]+".r
尝试过滤掉字母数字和数字字符串:
scala> val myOnlyWords = myWords.map(x => x).filter(x => regexpr(x).matches)
<console>:27: error: scala.util.matching.Regex does not take parameters
val myOnlyWords = myWords.map(x => x).filter(x => regexpr(x).matches)
这就是我卡住的地方。 我希望结果如下所示:
Array[String] = Array(This, file, not, Will, you, this, file, HDFS)
【问题讨论】:
标签: regex scala hadoop apache-spark