我正在尝试使用 python 库 Tweepy 流式传输 twitter 数据。我已经设置了工作环境,在谷歌上搜索了这些东西,但我不知道事情是如何工作的。我想将火花流(DStream - 批处理)与python(tweepy)一起使用。我至少经历了以下链接:
- 如何在 tweepy 的某个位置获取特定主题标签的推文?
- http://spark.apache.org/docs/latest/streaming-programming-guide.html
- http://docs.tweepy.org/en/v3.5.0/streaming_how_to.html
- 使用 Tweepy 检索 Twitter 数据
- http://www.awesomestats.in/spark-twitter-stream
以下 tweepy 代码对我来说工作正常:
import tweepy
consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
politicsTweets = tweepy.Cursor(api.search, q='#GONAWAZGO').items(100)
for tweet in politicsTweets:
print tweet.created_at, tweet.text, tweet.lang
但它没有使用火花流。我应该如何更新上述代码以使用 Spark Streaming?我不明白为什么我需要两个单独的文件?总的来说,我正在尝试执行以下操作:
- 从 2017 年 5 月 1 日开始获取前 10 个主题标签。(Tweepy 搜索功能接受参数“since_id”,不知道如何使用它 [ http://docs.tweepy.org/en/latest/api.html#help-methods ]? )
- 计算自 2013 年 5 月 11 日以来发现#GONAWAZGO 的次数。
- 数一数巴基斯坦以外的人做了多少#gonawazgo。(没有任何日期限制,Tweepy 光标方法接受地理编码,但我想要来自提供的地理编码以外的位置的推文。)
- 在 Twitter 上观察有关法国选举的趋势。
- 查找由 [ https://twitter.com/imrankhanpti ] 推特帐户发布的最新推文。(Tweepy 搜索方法接受用户 ID,我怎么能得到它?)
最重要的是,我对何时使用 Twitter REST/Streaming API 感到有些困惑。我认为应该使用第 1 点和第 2 点 REST API,因为我们正在处理迄今为止的过去数据,并且应该使用剩余的 Streaming API。