Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于hashtags的Scala正则表达式_Scala_Apache Spark_Spark Streaming - Fatal编程技术网

用于hashtags的Scala正则表达式

用于hashtags的Scala正则表达式,scala,apache-spark,spark-streaming,Scala,Apache Spark,Spark Streaming,我是IT界的新手,我用谷歌搜索解决了大部分问题,但这次我没能成功,所以我决定寻求一些帮助,呵呵 我正在用scala编写代码,scala使用twitter选择流行的标签。 我成功地解决了将每个单词分开,然后只选择以#开头的单词的问题 因为twitter上有很多使用亚洲字母的标签,我只想选择那些使用英语字母和数字的标签。我尝试添加一些表达式变体,如: val hashtags = tweetwords.filter(word => word.startsWith("#[^A-Za-z0-9]+

我是IT界的新手,我用谷歌搜索解决了大部分问题,但这次我没能成功,所以我决定寻求一些帮助,呵呵

我正在用scala编写代码,scala使用twitter选择流行的标签。 我成功地解决了将每个单词分开,然后只选择以#开头的单词的问题

因为twitter上有很多使用亚洲字母的标签,我只想选择那些使用英语字母和数字的标签。我尝试添加一些表达式变体,如:

val hashtags = tweetwords.filter(word => word.startsWith("#[^A-Za-z0-9]+"))
但当我试图在之后打印它们时,它们不会显示。在正则表达式测试网站上,同样的表达式工作得非常好


我做错了什么?谢谢你的建议

不幸的是,
startsWith
不接受正则表达式,因此筛选器正在显式查找该正则表达式字符串。您需要像这样构造一个regex对象:

val hashtagFilter=“^#[A-Za-z0-9]+$”。r
然后,您可以使用此选项过滤推特文字:

val hashtags=tweetwords.filter(word=>hashtagFilter.findFirstIn(word.isDefined)

感谢您的帮助,从现在起,我一定会记住如何使用regex!
val hashtags = tweetwords.filter(word => word.startsWith("#[^A-Za-z0-9]+"))