Spark Streaming с помощью Tweepy
Я пытаюсь транслировать данные из твиттера, используя библиотеку Python Tweepy. У меня есть настроенная рабочая среда, которая гуглится, но я не понимаю, как все работает. Я хочу использовать потоковое воспроизведение (DStream - Batch processing) с python (tweepy). Я прошел по крайней мере следующие ссылки:
- Как получить твиты определенного хэштега в локации в твипе?
- http://spark.apache.org/docs/latest/streaming-programming-guide.html
- http://docs.tweepy.org/en/v3.5.0/streaming_how_to.html
- Получение данных из Твиттера с помощью Tweepy
- http://www.awesomestats.in/spark-twitter-stream
Следующий твипи код работает нормально для меня:
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 ]?)
- Посчитайте, сколько раз #GONAWAZGO найдено с 11 мая 2013 года.
- Посчитайте, сколько #gonawazgo было сделано людьми за пределами Пакистана. (Без ограничения даты, метод курсора Tweepy принимает геокод, но я хочу твиты из других мест, кроме предоставленного геокода.)
- Наблюдайте за тенденцией о выборах Франции в Твиттере.
- Найдите самые последние твиты, созданные с помощью [ https://twitter.com/imrankhanpti ] твиттер-аккаунта. (Метод поиска Tweepy принимает userID, как я могу получить это?)
Прежде всего, я немного озадачен тем, когда использовать Twitter REST/Streaming API. Я думаю, что для 1-го и 2-го пункта следует использовать REST API, так как мы обрабатываем прошлые данные до даты, а для оставшегося потокового API следует использовать.
0 ответов
API поиска в Твиттере имеет 7-дневный лимит. Это означает, что вы не можете получить данные старше 7 дней. Вот ссылка на документацию по API поиска в Твиттере. Посмотрите на описание, упомянутое для параметра "before":
https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets.html
Надеюсь, это поможет!