01 Slides Modulo 1
01 Slides Modulo 1
01 Slides Modulo 1
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?
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
www.datascienceacademy.com.br
Cada projeto será apresentado com sua especificação,
documentação e scripts
www.datascienceacademy.com.br
Avaliação Final
www.datascienceacademy.com.br
Bonus
www.datascienceacademy.com.br
Pré-requisito
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
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
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?
www.datascienceacademy.com.br
Como o Spark está sendo utilizado?
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
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
Análise
Interativa
www.datascienceacademy.com.br
Spark Workflow
Carga de
Dados
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
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
www.datascienceacademy.com.br
Spark sqlContext
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
www.datascienceacademy.com.br
Processamento de Lotes (Batch) x
Processamento de Streaming de Dados
Batch Streams
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