Spark TwitterStream,按位置过滤推文

时间:2016-06-01 08:35:27

标签: scala twitter apache-spark

我试图在特定区域发送推文。 我使用Spark 1.6.1(Scala)和Twitter4J 4.0.4。 程序的开头是标准的(键等) 我使用TwitterUtils创建了一个流:

val tweetStream = TwitterUtils.createStream(ssc, None, filter, StorageLevel.MEMORY_ONLY_SER_2)

我在研究 FilterQuery 上找到了并尝试过 在tweetStream的过滤器方法中使用它,但它不接受它。

我错过了什么?

由于

2 个答案:

答案 0 :(得分:0)

如果你调试TwitterInputDStream.scala,特别是:

      val query = new FilterQuery
      if (filters.size > 0) {
        query.track(filters.mkString(","))
        newTwitterStream.filter(query)
      } else {
        newTwitterStream.sample()
      }

过滤Twitter流的唯一可能性是基于关键字,因为只使用了track()方法。我试过这个搜索特定的主题标签,这有效。

答案 1 :(得分:0)

有兴趣按位置过滤我找到了解决方法。

每条推文都有geoLocation(lat。/ long。)
其他有用的领域是Place。它有许多字段可以过滤:'Country','CountryCode','City'等。

唯一的缺点是,在收到推文而不是Twitter方面,它会被过滤掉。