SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Ricardo de Avila Amaral
Extrair tweets com Python e
Spark Streaming
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.
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
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
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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).
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.
Ricardo de Avila Amaral
Obrigado.

Mais conteúdo relacionado

Semelhante a Pegue tweets com Python e Spark Streaming

Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3IP10
 
Apache Spark Overview and Applications
Apache Spark Overview and ApplicationsApache Spark Overview and Applications
Apache Spark Overview and ApplicationsDiogo Munaro Vieira
 
Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Marcelo Charan
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesGuilherme Pereira Silva
 
2016/08/19 - Uma visão geral da AWS para desenvolvedores
2016/08/19 - Uma visão geral da AWS para desenvolvedores2016/08/19 - Uma visão geral da AWS para desenvolvedores
2016/08/19 - Uma visão geral da AWS para desenvolvedoresJardel Weyrich
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASHeider Lopes
 
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...Eiti Kimura
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1alinebiath
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyantonio sérgio nogueira
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Pythonantonio sérgio nogueira
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioFernando Palma
 
1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redes1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redesmanustm
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataAmbiente Livre
 
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data tdc-globalcode
 

Semelhante a Pegue tweets com Python e Spark Streaming (20)

Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3
 
Apache Spark Overview and Applications
Apache Spark Overview and ApplicationsApache Spark Overview and Applications
Apache Spark Overview and Applications
 
Redes 1 - Sockets em C#
Redes 1 - Sockets em C#Redes 1 - Sockets em C#
Redes 1 - Sockets em C#
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
 
2016/08/19 - Uma visão geral da AWS para desenvolvedores
2016/08/19 - Uma visão geral da AWS para desenvolvedores2016/08/19 - Uma visão geral da AWS para desenvolvedores
2016/08/19 - Uma visão geral da AWS para desenvolvedores
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
Ferramentas para Big Data
Ferramentas para Big DataFerramentas para Big Data
Ferramentas para Big Data
 
Python CGI
Python CGIPython CGI
Python CGI
 
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
[Datafest 2018] Apache Spark Structured Stream - Moedor de dados em tempo qua...
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redes1º Artigo De GerêNcia De Redes
1º Artigo De GerêNcia De Redes
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Apache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big DataApache Flink a Quarta Geração do Big Data
Apache Flink a Quarta Geração do Big Data
 
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data TDC2018SP | Trilha BigData - Apache Flink a Quarta Geracao do Big Data
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.
  • 19. Ricardo de Avila Amaral Obrigado.