我使用twittersource作为cloudera的flume。我想获得特定关键字的国家推特。当我想从荷兰得到tweet时,我不知道该拿什么来比较。我有以下结果,导致没有任何处理:
public void onStatus(Status status) {
if(status.getPlace().getCountry().equalsIgnoreCase("netherlands")) {
headers.put("timestamp", String.valueOf(status.getCreatedAt().getTime()));
Event event = EventBuilder.withBody(DataObjectFactory.getRawJSON(status).getBytes(), headers);
channel.processEvent(event);
}
}
我之所以不使用filterquery是因为我想用它作为关键字。如果我把这两者结合起来,就会是逻辑上的“与”与“非”与“与”。
FilterQuery query = new FilterQuery().track(keywords);
1条答案
按热度按时间8iwquhpp1#
经过分析,你会发现大多数tweet都没有附加位置。此外,即使附加了位置,城市、州或国家也可能不可用或不正确。我还发现tweet上根本不存在这样的国家名称。因此,你必须将城市名(或州名)Map到国家名,然后检查国家是否与荷兰匹配。使用谷歌Map来实现这一点。
你也可以在这里找到我的答案。