Я пытаюсь передавать данные из твиттера, используя библиотеку python Tweepy. Я настроил рабочую среду, погуглил об этом, но не понимаю, как все работает. Я хочу использовать потоковую передачу искры (DStream — пакетная обработка) с python (tweepy). Я прошел по крайней мере следующие ссылки:
- Как получать твиты определенного хэштега в месте в твипи?
- http://spark.apache.org/docs/latest/streaming-programming-guide.html
- http://docs.tweepy.org/en/v3.5.0/streaming_how_to.html
- Получение данных Twitter с помощью 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? Я не понимаю, зачем мне два отдельных файла? В целом я пытаюсь сделать следующее:
- Получите 10 лучших хэштегов с 1 мая 2017 года. (Функция поиска Tweepy принимает параметр «since_id», но не знает, как его использовать [http://docs.tweepy.org/en/latest/api.html#help-methods ]?)
- Подсчитайте, сколько раз #GONAWAZGO было найдено с 11 мая 2013 года.
- Посчитайте, сколько #gonawazgo совершили люди за пределами Пакистана. (Без каких-либо ограничений по дате метод курсора Tweepy принимает геокод, но мне нужны твиты из мест, отличных от предоставленного геокода.)
- Следите за тенденцией о выборах во Франции в Твиттере.
- Найдите самые последние твиты, сделанные аккаунтом [https://twitter.com/imrankhanpti ]. (Метод поиска Tweepy принимает идентификатор пользователя, как я могу это получить?)
Прежде всего, я немного запутался в том, когда использовать Twitter REST/Streaming API. Я думаю, что для 1-й и 2-й точки следует использовать REST API, поскольку мы обрабатываем прошлые данные до настоящего времени, а для остальных следует использовать Streaming API.