2016-06-01 30 views
0

我试图在特定区域获取推文。 我使用Spark 1.6.1(Scala)和Twitter4J 4.0.4。 节目的开始是标准的(按键等) 我创建了一个流与TwitterUtils像:Spark TwitterStream,按位置筛选推文

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

我在我的研究中发现FilterQuery,并试图 使用它在过滤tweetStream的方法但它不接受它。

我错过了什么?

感谢

回答

0

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

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

过滤Twitter的数据流的唯一可能是基于作为唯一的轨道关键字()方法用过的。我试过这个搜索特定的hashtags,工作。

+0

谢谢塔拉斯的解释。所以你不知道是否有可能? – Lev

+0

据我所知,没有。 –

0

谁有兴趣按位置筛选我找到了解决方法。

每条推文都有地理位置(纬度/经度)
其他有用的字段是地点。它有许多可以按照以下方式过滤的字段:'国家','国家代码','城市'等。

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