我正在尝试从twitter上传不同主题的数据:音乐、政治、体育等,以便在Map上显示tweet。其目的是用户可以“过滤”她/他正在观看的推文(按时间戳、按主题…)。我用Kafka,Spark流和tweepy为这个项目。
每一个提到的主题都会被几个关键词/标签过滤掉。你可以看到下面的例子。
music_keywords = ['music', 'song', 'The Voice', '#Eurovision']
politics_keywords = ['politics', 'democracy', 'government']
sports_keywords = ['sports', 'football', 'tennis', 'basketball', 'Real Madrid']
正因为如此,我怀疑是为每一个主题创建一个Kafka主题,还是仅仅通过一个键识别它们并将它们发布到同一个主题。
我读过,强烈建议使用分区来保持kafka消息的发布顺序,并按此顺序使用它们。但这对我来说不是问题,因为我不在乎订单,所有的微博都会被同一个消费者消费。我还担心严格的顺序可能会导致消费时的延迟。
我考虑过的另一个解决方案是,根据所有主题的所有关键字过滤tweet,然后在解析消费者中的数据时,根据每个tweet的文本对它们进行分类(例如,使用开关)。
我不知道哪种方法最适合我的问题,同时考虑到我使用的是标准的twitterapi,而且我没有大量的传入数据。
暂无答案!
目前还没有任何答案,快来回答吧!