【发布时间】:2017-10-16 13:50:59
【问题描述】:
我正在尝试使用 python 库 Tweepy 流式传输 Twitter 数据。我已经设置了工作环境,用谷歌搜索了这些东西,但我不知道事情是如何工作的。我想将火花流(DStream - 批处理)与python(tweepy)一起使用。我至少浏览了以下链接:
- How to get tweets of a particular hashtag in a location in a tweepy?
- http://spark.apache.org/docs/latest/streaming-programming-guide.html
- http://docs.tweepy.org/en/v3.5.0/streaming_how_to.html
- Retrieving Twitter data using Tweepy
- 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。
【问题讨论】:
标签: python-2.7 spark-streaming tweepy twitter-streaming-api twitter-rest-api