Você está na página 1de 121

Big Data Real-Time Analytics com

Python e Spark

www.datascienceacademy.com.br
Seja bem-vindo!

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Big Data Real-Time Analytics com
Python e Spark

www.datascienceacademy.com.br
Big Data Real-Time Analytics com
Python e Spark

Parte 1
Parte 3
Análise de Parte 2 Parte 4
Machine
Dados com Estatística Spark
Learning
Python

www.datascienceacademy.com.br
O que não veremos neste curso?

• Conteúdo Básico de Python


• Configuração do Cluster Spark

www.datascienceacademy.com.br
Que ferramentas iremos usar?
• Anaconda Python (última versão)
• Jupyter Notebook
• Apache Spark (versão 2.0)
• Ambiente em Cloud da Databricks

www.datascienceacademy.com.br
Scripts

www.datascienceacademy.com.br
Projetos

www.datascienceacademy.com.br
Projetos

• Criando um Sistema de Reconhecimento de Imagens


• Análise de Dados do Twitter em Tempo Real
• Análise de Sentimento para Investidores

www.datascienceacademy.com.br
Cada projeto será apresentado com sua especificação,
documentação e scripts

www.datascienceacademy.com.br
Avaliação Final

50 questões – 2 tentativas – 70% - 12 meses

www.datascienceacademy.com.br
Bonus

Usando Linguagem R e Spark

www.datascienceacademy.com.br
Pré-requisito

Python Fundamentos para Análise de Dados

www.datascienceacademy.com.br
Este curso é mais complexo que o primeiro curso da
Formação Cientista de Dados

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Comunique-se
Crie e
execute os
scripts
8 horas de
dedicação
por semana

www.datascienceacademy.com.br
Fontes de Informação

www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
• Python Brasil Programadores
• Pythoneiros – Grupo de Estudo
• Python Programmers
• Apache Spark Users
• Data Mining / Machine Learning / AI

www.datascienceacademy.com.br
Objetivo ao fim deste curso

• Desenvolver habilidades de processamento e análise de dados em tempo real


• Aprender técnicas de Machine Learning e Processamento de Dados
• Compreender os conceitos do ciclo de vida de projetos de Big Data Analytics
• Aplicar o conhecimento deste curso em casos reais do dia a dia
• Compreender a função da Estatística no processo de Data Science

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Obrigado

www.datascienceacademy.com.br
Big Data Real-Time Analytics com
Python e Spark

www.datascienceacademy.com.br
O que é Apache Spark?

www.datascienceacademy.com.br
www.datascienceacademy.com.br
O Spark tem se tornado a mais popular solução de
MapReduce para processamento paralelo de dados, a
chave para processamento de dados em tempo real

www.datascienceacademy.com.br
O Spark pode ser executado em um único computador ou
em grandes Clusters

www.datascienceacademy.com.br
O que são Clusters?

www.datascienceacademy.com.br
Clusters são conjuntos de computadores
(servidores) conectados, que executam
como se fossem um único sistema. Cada
computador no cluster é chamado node
e cada node realiza a mesma tarefa,
sendo controlado por software.
Normalmente cada componente de um
cluster é conectado através de redes
locais (LAN’s) e cada node executa sua

própria instânca de sistema operacional .

www.datascienceacademy.com.br
O Spark é ideal para processamento iterativo, interativo e
processamento de stream de dados

www.datascienceacademy.com.br
O Spark oferece 3 benefícios principais

• Fácil de usar
• Veloz
• Engine de uso geral

www.datascienceacademy.com.br
Apache Spark é uma plataforma de computação em cluster (conjuntos
de computadores), criado para ser veloz e de uso geral, sendo ideal
para processamento iterativo e processamento de streaming de dados
(fluxo contínuo de dados)

www.datascienceacademy.com.br
Spark realiza a computação em memória (o que ajuda a explicar sua
velocidade), mas também é eficiente quando executa aplicações em disco

www.datascienceacademy.com.br
O resultado de um projeto de Big Data pode
ser a criação de um sistema de análise de
dados em tempo real, que pode se tornar o
componente de uma aplicação de negócio

www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Big Data Analytics

www.datascienceacademy.com.br
E como o Spark é utilizado?

www.datascienceacademy.com.br
Por que aprender Apache Spark?

www.datascienceacademy.com.br
Por que aprender Apache Spark?

• Cada vez mais utilizado por empresas interessadas em analisar dados


em tempo real
• Uma das tecnologias mais quentes em Big Data
• Suporte cada vez maior
• Crescente demanda por profissionais que saibam processar e analisar
dados em tempo real

www.datascienceacademy.com.br
Como o Spark está sendo utilizado?

• Detecção de Fraudes em tempo real


• Detecção de Invasão de Redes
• Campanhas de Marketing e Propaganda em tempo real
• Análise de Sentimento em Redes Sociais

www.datascienceacademy.com.br
Obrigado

www.datascienceacademy.com.br
Big Data Real-Time Analytics com
Python e Spark

www.datascienceacademy.com.br
Por que Python e Spark?

www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Nós estamos na era do Big Data. Os dados se tornaram não apenas o novo petróleo, mas
seu crescimento continua ocorrendo de forma exponencial. Os dados gerados
atualmenete são em magnitude muito maiores do que há poucos anos atrás. O desafio é
como as empresas serão capazes de extrair valor a partir dos dados. Este é o principal
objetivo das tecnologias de Big Data. O termo Big Data está em evidência e a maioria dos
projetos open source atuais são relacionados a Big Data. Projetos open source são um
bom termometro sobre os temas nos quais as pessoas estão trabalhando. O número de
startups focadas em Big Data é outro sinal do crescimento do Big Data. Grandes empresas
em todo o mundo estão investindo cada vez mais em Big Data.

www.datascienceacademy.com.br
O Spark foi criado na era do Big
Data, para resolver problemas
de Big Data

www.datascienceacademy.com.br
Spark Workflow

www.datascienceacademy.com.br
Spark Workflow
Carga de
Dados

Ação Transformação

Machine
Processamento
Learning

Análise
Interativa

www.datascienceacademy.com.br
Spark Workflow
Carga de Fontes que geram dados em tempo real, HDFS, NoSQL
Dados

Ação Transformação

Machine
Processamento
Learning

Análise
Interativa

www.datascienceacademy.com.br
Spark Workflow
Carga de
Dados

Ação Transformação Filtro, Limpeza, Join

Machine
Processamento
Learning

Análise
Interativa

www.datascienceacademy.com.br
Spark Workflow
Carga de
Dados

Ação Transformação

Machine
Learning
Processamento Em memória, HDFS, NoSQL

Análise
Interativa

www.datascienceacademy.com.br
Spark Workflow
Carga de
Dados

Ação Transformação

Machine
Processamento
Learning

Análise
Shell, SparkSQL Interativa

www.datascienceacademy.com.br
Spark Workflow
Carga de
Dados

Ação Transformação

Modelos Preditivos Aplicados Machine


Processamento
a Stream de Dados Learning

Análise
Interativa

www.datascienceacademy.com.br
Spark Workflow
Carga de
Dados

Tomada de Decisão Ação Transformação

Machine
Processamento
Learning

Análise
Interativa

www.datascienceacademy.com.br
Python Spark (PySpark)

www.datascienceacademy.com.br
Dataframes x RDD’s

www.datascienceacademy.com.br
Spark Driver e Workers
Uma aplicação Spark possui 2 programas:

• Driver Program
• Worker Program

• Worker Programs são executados em cada node do cluster


• Dataframes são distribuídos através dos Workers

• Driver Program é executado em uma única máquina

www.datascienceacademy.com.br
SparkContexts
O Spark cria um programa chamado SparkContext,
que é um objeto que define como e onde o Spark
acessa o cluster

• No shell do PySpark, o SparkContext é criado


automaticamente

• No Jupyter Notebook ou em outra IDE, precisamos


criar o SparkContext

www.datascienceacademy.com.br
Spark sqlContext

Na sequência, criamos o sqlContext, que é o objeto usado para


criar os dataframes, as estruturas que vão armazenar os dados

www.datascienceacademy.com.br
Por que Python e Spark?

www.datascienceacademy.com.br
Obrigado

www.datascienceacademy.com.br
Big Data Real-Time Analytics com
Python e Spark

www.datascienceacademy.com.br
Real-Time Analytics com Spark

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Big Data
O Big Data é um grande e complexo conjunto de dados, que já não pode
mais ser processado com técnicas de storage e análise tradiconais,
sendo necessário a utilização de novas tecnologias. O Big Data tem sido
a mola propulsora para a geração de novos métodos de análise de
dados. Tudo que conhecemos sobre armazenamento e análise está
mudando. Isso já está acontecendo! E o mais incrível, é o que o Big Data
está revolucionando os conceitos que ele mesmo criou. Vejamos.

www.datascienceacademy.com.br
Big Data

Desafio 1 Desafio 2
Coletar os dados Analisar em Tempo Real

www.datascienceacademy.com.br
Big Data

Volume Variedade

Velocidade Veracidade

www.datascienceacademy.com.br
Big Data

Volume Variedade

Valor

Velocidade Veracidade

www.datascienceacademy.com.br
Big Data

Velocidade

www.datascienceacademy.com.br
De onde vem o Big Data?
O Big Data vem de todos os lugares, de todas as atividades
humanas e também através de máquinas. Transações de
compras online ou em lojas físicas, cliques em web sites, vídeos,
mensagens de rede, redes sociais, pesquisas científicas, estudo
do genoma humano, sinais de GPS, logs de servidores e Internet
das Coisas.

www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
60 TB/dia

www.datascienceacademy.com.br
E é exatamente por isso, que precisamos usar clusters de
computadores, para que sejamos capazes de armazenar e analisar
estes conjuntos de dados. Uma única máquina não pode armazenar e
processar todo esse conjunto de dados. Nós então distribuímos os
dados através de diversos computadores diferentes, que são os nodes
em um cluster.

www.datascienceacademy.com.br
Ou seja, problema
Ou seja,resolvido???
problema resolvido???

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Computação
Distribuída

www.datascienceacademy.com.br
Hadoop e Spark foram pensados
para Computação Distribuída

www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
O que é Streaming de Dados?
Dados em streaming são dados gerados continuamente por milhares de fontes
de dados, que geralmente enviam os registros de dados simultaneamente, em
tamanhos pequenos (na ordem dos kilobytes). Os dados em streaming incluem
uma ampla variedade de dados, como arquivos de log gerados por clientes
usando seus aplicativos móveis ou da web, compras de e-commerce, atividade
de jogador durante o jogo, informações de redes sociais, pregões financeiros
ou serviços geoespaciais, como também telemetria de serviços conectados ou
instrumentação em datacenters.

www.datascienceacademy.com.br
O que é Streaming de Dados?

www.datascienceacademy.com.br
Streaming
de Dados

www.datascienceacademy.com.br
Analisar os dados enquanto eles estão sendo gerados

www.datascienceacademy.com.br
Possíveis Fontes para o Spark Streaming

• Sensores em veículos
• Monitoramento de cotação de ações na bolsa de valores
• Arquivos texto (no momento em que eles são gerados)
• Redes Sociais (Facebook, Twitter, Foursquare)
• Dados de dispositivos móveis
• Cliques em web sites
• Apache Kafka
• Apache Flume

www.datascienceacademy.com.br
Processamento de Lotes (Batch) x
Processamento de Streaming de Dados

Batch Streams
Consultas ou processamento de
Consultas ou processamento de
dados dentro de um período
Escopo de Dados todos ou da maioria dos dados
rotacional, ou apenas do registro de
no conjunto de dados.
dados mais recente.

www.datascienceacademy.com.br
Processamento de Lotes (Batch) x
Processamento de Streaming de Dados

Batch Streams
Registros individuais ou microlotes
Tamanho dos Dados Grandes lotes de dados.
compostos de alguns registros.

www.datascienceacademy.com.br
Processamento de Lotes (Batch) x
Processamento de Streaming de Dados

Batch Streams

Exige latência na ordem dos


Desempenho Latências em minutos ou horas.
segundos ou milissegundos.

www.datascienceacademy.com.br
Processamento de Lotes (Batch) x
Processamento de Streaming de Dados

Batch Streams

Métricas simples de funções,


Análise Dados analíticos complexos.
agregação e rotação de respostas.

www.datascienceacademy.com.br
Obrigado

www.datascienceacademy.com.br
Big Data Real-Time Analytics com
Python e Spark

www.datascienceacademy.com.br
Spark x Hadoop

www.datascienceacademy.com.br
X

www.datascienceacademy.com.br
Hadoop

www.datascienceacademy.com.br
Mas e quando o volume de dados
não for tão grande?

www.datascienceacademy.com.br
E se o volume de dados estiver em
streaming, ou seja, fluxo contínuo de
dados?

www.datascienceacademy.com.br
O Apache Spark foi a primeira plataforma de Big Data a integrar
processamento de dados em batch, streaming e computação
iterativa em um único framework

www.datascienceacademy.com.br
Hadoop Spark
Armazenamento distribuído + Somente computação distribuída
Computação distribuída
Framework MapReduce Computação genérica
Normalmente processa dados em disco Em disco / Em memória
(HDFS)
Não é ideal para trabalho iterativo Excelente para trabalhos iterativos
(Machine Learning)
Processo batch Até 10x mais rápido para dados em disco
Até 100x mais rápido para dados em memória
Basicamente Java Suporta Java, Python, Scala e R
Não possui um shell unificado Shell para exploração ad-hoc

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Mas o Spark pode não ser a melhor
solução em todas as situações!

www.datascienceacademy.com.br
O Spark é muito bom quando os dados
podem ser processados em memória.
Mas e quando não podem?

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Hadoop Spark
Hadoop MapReduce Spark RDD
Processamento batch
(Java, Pig, Hive) (Java, Python, Scala, R)
Query SQL Hadoop: Hive Spark SQL
Processamento Stream /
Storm, Kafka Spark Streaming
Processamento em Tempo Real
Machine Learning Mahout Spark ML Lib
Muito rápido
Algoritmos iterativos Lento
(em memória)
Pig com Spark ou Mix de Spark
Workflow ETL Pig, Flume
SQL e programação RDD
Volume gigante Volume médio
Volume de Dados
(Petabytes) (Gigabytes / Terabytes)

www.datascienceacademy.com.br
Spark x Hadoop
A utilização do Spark ou do Hadoop, vai depender de diversos fatores.
Embora o Spark seja mais veloz para processamento de dados em
memória, ele pode não ser a solução ideal quando se trata de dados
com volume muito grande e que eventualmente não tenham que ser
analisados em tempo real.

www.datascienceacademy.com.br
Obrigado

www.datascienceacademy.com.br
Big Data Real-Time Analytics com
Python e Spark

www.datascienceacademy.com.br
Preparando o Ambiente
Python e Spark

www.datascienceacademy.com.br
Preparando o Ambiente
Python e Spark
• Java
• Anaconda
• Spark

www.datascienceacademy.com.br
Preparando o Cluster Spark em Cloud
Para simular um Cluster Spark, nós usaremos o ambiente da
Databricks. O Spark é um software open source, gratuito. A
databricks, fornece soluções de análise em tempo real e oferece
ainda um ambiente em Cloud, totalmente gratuito e disponível para
testarmos nossos modelos preditivos de análise de dados em tempo
real.

www.datascienceacademy.com.br
Obrigado

www.datascienceacademy.com.br

Você também pode gostar