Um guia rápido de como criar um Twitter App, e utilizar a linguagem Python e as bibliotecas do Spark Streaming para extrair tweets e prepará-los para análise.
fonte: https://www.toptal.com/apache/apache-spark-streaming-twitter
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
Pegue tweets com Python e Spark Streaming
1. Ricardo de Avila Amaral
Extrair tweets com Python e
Spark Streaming
2. Objetivos
A análise de sentimento tem como objetivo classificar textos de acordo com o sentimento expressado
pelo autor. Na maioria das aplicações os textos são classificados de acordo com a polaridade da
mensagem (positivo, negativo ou neutro). Na técnica mais simples a polaridade é atribuída pela presença
de palavras com conotação positiva ou negativa. Por exemplo, na presença da palavra “gostei” poderia ser
atribuído o sentimento positivo.
3. Metodologia & Tecnologia
Para executar esta tarefa de análise de
sentimentalização será utilizada a tecnologia
“Spark Streaming” , da empresa Apache.
O Apache Spark é um sistema de processamento
distribuído de código aberto usado normalmente
para cargas de trabalho de big data. O Apache
Spark utiliza o armazenamento em cache na
memória e a execução otimizada para obter alta
performance, além de oferecer suporte ao
processamento geral de lotes, análise de
streaming, Machine Learning, bancos de dados
gráficos e consultas ad hoc.
fonte: https://pt.wikipedia.org/wiki/Apache_Spark
4. Metodologia & Tecnologia
Como linguagem utilizada para interagir com o
Apache Spark será utilizado o Python.
Python é uma linguagem de programação de alto
nível, interpretada, de script, imperativa,
orientada a objetos, funcional, de tipagem
dinâmica e forte. Foi lançada por Guido van
Rossum em 1991. Atualmente possui um modelo
de desenvolvimento comunitário, aberto e
gerenciado pela organização sem fins lucrativos
Python Software Foundation.
fonte: https://pt.wikipedia.org/wiki/Python
5. Twitter
Plataforma de dados da rede social contém a
informação que será utilizada neste tutorial. Para
o acesso aos dados é necessário ser um usuário
desenvolvedor.
6. 1. Criar credenciais
para APIs do
Twitter
Para que seja possível interagir com a base
de dados do Twitter, é necessário fornecer
durante a conexão seus credenciais como
desenvolvedor. E o primeiro passo é criar
um TwitterApp:
https://developer.twitter.com/en/apps
7. 2. Criar um Twitter App
É necessário gerar um token de acesso e um “token secret” para que o Twitter App possa fazer
solicitações em nome de um usuário único usuário, e acessar tweets.
8. Python
Será utilizado Python para criar um cliente que
obterá os tweets da API do Twitter usando Python
e os passará para a instância do Spark Streaming.
9. O primeiro passo é criar um cliente Python
que baixará os tweets, utilizando a API
Twitter. E por isso é necessário informar ao
conector nossas credenciais, criadas nas
etapas anteriores durante a criação do
Twitter App.
3. Criar conectores
Python para
acesso ao
Twitter.
10. As funções em Python irão acessar a base
JSON do Twitter por meio de “query”, por
meio de método “get” extrair os texto dos
tweets (em JSON) e criar instâncias de
Spark Streaming. A conexão é feita por
meio dos protocolos TCP IP.
4. Criar funções
que tragam os
tweets e os
armazenem
11. O próximo bloco de código irá configurar
os soquetes de conexão com o host, e
chamar o método get_tweets, para obter os
tweets do Twitter, e passar sua resposta
junto com o conexão de soquete para
send_tweets_to_spark para enviar os tweets
para o Spark.
5. Criar a conexão
entre o Twitter
App e o Apache
Spak.
12. A interação entre o aplicativo e a API do Twitter e o fluxos de dados.
Etapa 1: configurar seu fluxo
Para definir qual conteúdo deve ser entregue é
preciso configurar algumas regras;
Etapa 2: conectar-se à API
Para abrir o fluxo de dados para que os Tweets
sejam entregues, você precisa enviar uma
solicitação de conexão à API;
Etapa 3: consumir os dados
O fluxo envia novos Tweets pela conexão aberta à
medida que eles acontecem, e seu aplicativo cliente
precisará reconhecer e manipular vários tipos de
mensagens;
Etapa 4: reconecte-se à API
Com fluxos em tempo real, é importante entender
que você pode estar perdendo dados sempre que for
desconectado do fluxo. Sempre que ocorre uma
desconexão, seu aplicativo cliente deve reiniciar o
processo estabelecendo uma nova conexão.
13. Spark
Streaming
Extensão da Spark API, permite o processamento escalonável de alta taxa de transferência, e tolerante a
falhas. E após processar os dados são enviados para sistemas de arquivos, bancos de dados e painéis ativos.
14. 7. Iniciando e
configurando o
Spark Streaming
A biblioteca PySpark permite estabelecer a
triangulação entre Twitter, Python e Spark.
E para isso deve-se criar uma instância do
Spark Context, que diz para o Spark como
acessar os dados nos clusters. Mas antes, é
necessário criar um SparkConf, que
contém informações sobre seu app.
15. 8. Tratando dados
e organizando
em clusters.
Definir a lógica de transformação é um
processo onde o Spark divide todos os
tweets em palavras e transforma em
palavras RDD. Depois, filtrar as hashtags de
todas as palavras e as mapear, as
organizando em pares (hashtag, 1) para
organizar como hashtags RDD.
16. 9. Transforma
tweets em
palavras RDD e
retorna tabela
Processamento de todas as tags RDD, as
convertendo em uma tabela temporária,
utilizando Spark SQL Context, e realizando
uma busca para contar as ocorrências de
com hashtag_counts_df, para que
finalmente exiba uma tabela com 10
melhores resultados.
17. 10. Envia o dataset
de hashtags ao
dashboard
O processo irá converter o dataframe em
Array, criando duplas compostas por uma
hashtag e seu ID de regristro numérico
(hashtag, 1).
18. 11. Envia o dataset de
hashtags ao dashboard
O processo irá converter o dataframe em Array, criando
duplas compostas por uma hashtag e seu ID de regristro
numérico (hashtag, 1), concluínd com a saída do Spark
Streaming ao executar e imprimir a tabela de dados, listando
as 10 Top Hashtags.