Spark Streaming - Twitter - 过滤推文数据
Spark Streaming - Twitter - Filtering tweet data
我是 Scala 和 Spark 的新手。我正在使用 Twitter 数据进行 Spark Streaming。我将流平面化为单个 words.Now,我需要在处理它们之前从流数据中消除以 #、@ 开头的推文词和 RT 等词。我知道 do.I 为此编写过滤器很容易,但它不起作用。任何人都可以帮忙吗?我的密码是
val sparkConf = new SparkConf().setMaster("local[2]")
val ssc = new StreamingContext(sparkConf, Seconds(2))
val stream = TwitterUtils.createStream(ssc, None)
//val lanFilter = stream.filter(status => status.getLang == "en")
val RDD1 = stream.flatMap(status => status.getText.split(" "))
val filterRDD = RDD1.filter(word =>(word !=word.startsWith("#")))
filterRDD.print()
语言过滤器也显示错误。
谢谢。
你的lambda表达式正确吗?我想你想要:
val filterRDD = RDD1.filter(word => !word.startsWith("#"))
您可以使用内置的单词过滤器支持:
TwitterUtils.createStream(ssc, None, Array("filter", "these", "words"))
但是如果你想修复你的代码:
.filterNot(_.getText.startsWith("#"))
关于语言,请参阅此question。
我是 Scala 和 Spark 的新手。我正在使用 Twitter 数据进行 Spark Streaming。我将流平面化为单个 words.Now,我需要在处理它们之前从流数据中消除以 #、@ 开头的推文词和 RT 等词。我知道 do.I 为此编写过滤器很容易,但它不起作用。任何人都可以帮忙吗?我的密码是
val sparkConf = new SparkConf().setMaster("local[2]")
val ssc = new StreamingContext(sparkConf, Seconds(2))
val stream = TwitterUtils.createStream(ssc, None)
//val lanFilter = stream.filter(status => status.getLang == "en")
val RDD1 = stream.flatMap(status => status.getText.split(" "))
val filterRDD = RDD1.filter(word =>(word !=word.startsWith("#")))
filterRDD.print()
语言过滤器也显示错误。
谢谢。
你的lambda表达式正确吗?我想你想要:
val filterRDD = RDD1.filter(word => !word.startsWith("#"))
您可以使用内置的单词过滤器支持:
TwitterUtils.createStream(ssc, None, Array("filter", "these", "words"))
但是如果你想修复你的代码:
.filterNot(_.getText.startsWith("#"))
关于语言,请参阅此question。