Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Big Data Real-Time Analytics com 
Python e Spark
www.datascienceacademy.com.br
Seja bem-vindo!
www.datascienceacademy.com.br
Apache Spark
www.datascienceacademy.com.br
Introdução
www.datascienceacademy.com.br
Apache Spark é um dos assuntos mais quentes do
momento em tecnologias de Big Data Analytics. A
quantidade de dados gerados em todo o mundo aumenta
de forma exponencial e o Spark é claramente a solução
computacional expressamente concebida para lidar com
este nível de crescimento. Primeiramente criado como
parte de um projeto de pesquisa na Universidade de
Berkeley nos EUA, Spark é um projeto open source no
universo do Big Data, construído para análises
sofisticadas, velocidade de processamento e facilidade de
uso. Ele unifica capacidades críticas de análise de dados,
como SQL, análise avançada em Machine Learning e
streaming de dados, tudo isso em uma única estrutura.
www.datascienceacademy.com.br
 Spark realiza operações de MapReduce
 Spark pode utilizar o HDFS
 Spark permite construir um workflow de Analytics
 Spark utiliza a memória do computador de forma diferente e eficiente
 Spark é veloz
 Spark é flexível
 Spark é gratuito
www.datascienceacademy.com.br
Por que Aprender Apache Spark?
www.datascienceacademy.com.br
Por diversas razões: é atualmente uma das tecnologias mais quentes em Big
Data Analytics, devido sua velocidade de processamento. Mais e mais
empresas estão adotando infraestrutura de Big Data que tem o Spark como um
dos componentes principais. Existe cada vez mais suporte de outras empresas
e alta demanda por profissionais que conheçam processamento de dados em
tempo real.
Como Vamos Estudar o Spark?
• Capítulo 6 - Arquitetura do Spark, Transformações, Ações, PySpark 
• Capítulo 7 - Spark SQL
• Capítulo 8 - Spark Streaming e Análise de Dados em Tempo Real 
• Capítulo 9 - Machine Learning em Streaming de Dados com Spark MLlib
www.datascienceacademy.com.br
Como Vamos Estudar o Spark?
• Capítulo 6
 Introdução ao Spark
 Arquitetura 
 PySpark e Jupyter Notebook
 RDD’s
 Lazy Evaluation
 Transformações 
 Ações
www.datascienceacademy.com.br
O Spark é um tema avançado!
www.datascienceacademy.com.br
A dedicação é o combustível que nos move. 
Ela é a responsável pelo nosso sucesso.
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Apache Spark e Big Data
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Como armazenar e processar todos 
esses dados, se o volume aumenta de 
forma exponencial?
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Apache Spark é um sistema de análise de dados distribuído e altamente escalável que
permite processamento em memória, o desenvolvimento de aplicações em Java, Scala e
Python, assim como linguagem R. É atualmente um dos principais projetos da Apache
Foundation. O Spark estende as funcionalidades do MapReduce, suportando tarefas mais
eficientes de computação como queries iterativas e processamento de streams de dados.
Velocidade é importante quando processamos grandes conjuntos de dados e uma das
principais características do Spark é exatamente sua velocidade, permitindo o
processamento de dados em memória e em disco.
www.datascienceacademy.com.br
O Spark uitiliza a memória distribuída através de
diversos computadores, os nodes de um cluster. O
preço da memória dos computadores vem caindo
ano após ano e como o processamento em
memória é muito mais rápido que o processamento
em disco, o Spark é uma tecnologia realmente
promissora. Enquanto o Hadoop armazena os
resultados intermediários do processamento, em
disco, o Spark armazena os resultados
intermediários em memória. Esse é basicamente o
grande diferencial do Spark.
Apache Spark é um framework open-source para 
processamento de Big Data construído para ser veloz, 
fácil de usar e para análises sofisticadas.
www.datascienceacademy.com.br
Apache Spark é uma ferramenta de análise de Big Data, 
escalável e eficiente.
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Ecosistema Spark
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
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Spark Framework
Spark Core
Spark Scheduler
Local HDFS RDBMS NoSQL S3
YARN Mesos
SparkSQL
Python R Scala Java Tools
MLlib GraphX Streaming
Programação
Bibliotecas
Gerenciamento
Armazenamento
Engine
www.datascienceacademy.com.br
Quando usamos o Spark?
www.datascienceacademy.com.br
Quando usamos o Spark?
• Integração de Dados e ETL
• Análises Interativas
• Computação em Batch de Alta Performance
• Análises Avançadas de Machine Learning
• Processamento de Dados em Tempo Real
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Apache Spark
www.datascienceacademy.com.br
Verificando a Instalação do Spark
www.datascienceacademy.com.br
Diretórios de Instalação do Spark
www.datascienceacademy.com.br
Diretório Objetivo
bin Executáveis
conf Arquivos de configuração
data Datasets
examples Scripts de exemplo
jars Arquivos .jar
licenses Licenças de uso
python Biblioteca Python
R Biblioteca R
sbin Executáveis e configuração do cluster
yarn Gestão do Cluster
Diretórios de Instalação do Spark
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
MapReduce x Spark
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
O Spark realiza o processamento distribuído, de forma 
similar ao Hadoop MapReduce, porém com muito 
mais velocidade.
www.datascienceacademy.com.br
O Spark não possui sistema de armazenamento, 
podendo usar o HDFS como fonte de dados.
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
www.datascienceacademy.com.br
RDD’s = Resilient Distributed Datasets
www.datascienceacademy.com.br
www.datascienceacademy.com.br
• O Spark suporta mais do que apenas as funções de Map e Reduce
• Hadoop MapReduce grava os resultados intermediários em disco, enquanto o Spark grava os resultados 
intermediários em memória, o que é muito mais rápido
• O Spark fornece APIs concisas e consistentes em Scala, Java e Python (e mais recentemente em R)
• O spark oferece shell interativo para Scala, Python e R 
• O Spark pode utilizar o HDFS como uma de suas fontes de dados
www.datascienceacademy.com.br
O Cientista de Dados é responsável por definir as regras de 
manipulação e análise de dados
O Spark e o Hadoop MapReduce tem uma característica 
principal em comum: são responsáveis por gerenciar o 
processamento distribuído
www.datascienceacademy.com.br
Porém o Spark faz isso de forma muito mais rápida que o 
Hadoop MapReduce
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Arquitetura Spark
www.datascienceacademy.com.br
Exstem basicamente 3 perfis de profissionais que vão trabalhar com Spark:
• Cientistas de Dados
• Engenheiros de Dados
• Administradores
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Anatomia de uma 
Aplicação Spark
Aplicação Spark = Instância de um Spark Context
www.datascienceacademy.com.br
Anatomia de uma 
Aplicação Spark
www.datascienceacademy.com.br
Anatomia de uma 
Aplicação Spark
Shell – área de trabalho via linha de comando
Spark Context – conexão ao ambiente Spark
sc – SparkContext criado quando iniciamos o pyspark 
www.datascienceacademy.com.br
PySpark
Anatomia de uma 
Aplicação Spark
www.datascienceacademy.com.br
Quando utilizamos o PySpark e o Jupyter Notebook não precisamos nos 
preocupar com a criação do Spark Context. 
Mas quando criamos uma aplicação de análise de dados (um arquivo .py por 
exemplo) e utilizamos o spark-submit para iniciar nossa aplicação, precisamos 
explicitamente criar um Spark Context.
www.datascienceacademy.com.br
Arquitetura Spark
Master/Worker
www.datascienceacademy.com.br
Arquitetura Spark
Master/Worker
Aplicação
node
www.datascienceacademy.com.br
Arquitetura Spark
Master/Worker
Aplicação
www.datascienceacademy.com.br
Arquitetura Spark
Master/Worker
Aplicação
www.datascienceacademy.com.br
Arquitetura Spark
Master/Worker
Spark Driver
www.datascienceacademy.com.br
Arquitetura Spark
Spark Driver
www.datascienceacademy.com.br
Arquitetura Spark
Spark Context
www.datascienceacademy.com.br
Arquitetura Spark
Cluster Manager
www.datascienceacademy.com.br
Arquitetura Spark
Worker Node
Worker = host = node = computador
www.datascienceacademy.com.br
Arquitetura Spark
Executor
www.datascienceacademy.com.br
Arquitetura Spark
Task
www.datascienceacademy.com.br
Como uma aplicação é executada no Spark
www.datascienceacademy.com.br
Spark Modes
Modo 
Batch
Modo 
Interativo
Modo 
Streaming
www.datascienceacademy.com.br
Deploy Mode
Única JVM
Cluster 
Gerenciado
Local
(Standalone ou Cluster)
Cluster em Nuvem
(Databricks, Amazon EC2, IBM 
Bluemix
www.datascienceacademy.com.br
Fontes de Dados para o Spark
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
RDD
Resilient Distributed Datasets
www.datascienceacademy.com.br
RDD é uma coleção de objetos distribuída e imutável. Cada 
conjunto de dados no RDD é dividido em partições lógicas, que 
podem ser computados em diferentes nodes do cluster. 
www.datascienceacademy.com.br
RDD’s são imutáveis
www.datascienceacademy.com.br
HDFS
RDBMS
NoSQL
Arquivos
www.datascienceacademy.com.br
Existem 2 formas de criar o RDD
Paralelizando uma 
coleção existente 
(função sc.parallelize)
Referenciando um 
dataset externo 
(HDFS, RDBMS, NoSQL, S3)
www.datascienceacademy.com.br
As RDD’s são a essência do 
funcionamento do Spark
www.datascienceacademy.com.br
Hadoop MapReduce
www.datascienceacademy.com.br
Spark
www.datascienceacademy.com.br
Por padrão, os RDD’s são computados cada vez que executamos uma 
Ação. Entretanto, podemos ”persistir” o RDD na memória (ou mesmo 
no disco) de modo que os dados estejam disponíveis ao longo do 
cluster e possam ser processados de forma muito mais rápida pelas 
operações de análise de dados criadas por você, Cientista de Dados.
www.datascienceacademy.com.br
O RDD suporta dois tipos de operações:
Transformações Ações
reduce()
collect()
first()
take()
countByKey()
www.datascienceacademy.com.br
Transformações
map()
filter()
flatMap()
reduceByKey()
aggregateByKey
Transformações e Ações
www.datascienceacademy.com.br
Transformações e Ações
Carrega e 
Transforma os Dados
Resultados
Lazy 
Evaluation
www.datascienceacademy.com.br
As ”Ações” aplicam as ”Transformações” nos RDD’s 
e retornam resultado
www.datascienceacademy.com.br
• Spark é baseado em RDD’s. Criamos, transformamos e armazenamos RDD’s em Spark.
• RDD representa uma coleção de elementos de dados particionados que podem ser operados em paralelo.
• RDD’s são objetos imutáveis. Eles não podem ser alterados uma vez criados.
• RDD’s podem ser colocados em cache e permitem persistência (mesmo objeto usado entre sessões diferentes).
• Ao aplicarmos Transformações em RDD’s criamos novos RDD’s.
• Ações aplicam as Transformações nos RDD’s e geram um resultado.
Características dos RDD’s:
www.datascienceacademy.com.br
RDD’s
Imutablidade
Importante quando se realiza 
processamento paralelo.
Particionado e Distribuído
Permite processar arquivos 
através de diversos 
computadores.
Armazenamento em Memória
Processamento muito mais 
veloz, permitindo armazenar 
os resultados intermediários 
em memória.
www.datascienceacademy.com.br
Obrigado
www.datascienceacademy.com.br
Transformações
São operações preguiçosas (lazy operations) executadas sobre os 
RDD’s e que criam um ou mais RDD’s.
www.datascienceacademy.com.br
Transformações
www.datascienceacademy.com.br
Transformações
Após executar operações de Transformação no RDD, o RDD 
resultante será diferente do RDD original e poderá ser menor (se 
usadas as funções filter, count, distinct, sample) ou maior (se 
usadas as funções flatMap, union, cartesian)
www.datascienceacademy.com.br
• Realizam as operações em um RDD e criam um novo RDD
• Operações são feitas em um elemento por vez
• Lazy Evaluation
• Pode ser distribuída através de múltiplos nodes
Transformações
www.datascienceacademy.com.br
Transformações
Algumas operações de Tranformação podem ser colocadas no 
que o Spark chama de Pipeline, que é um encadeamento de 
transformações visando aumentar a perfomance
www.datascienceacademy.com.br
Transformações
Narrow Wide
Resultado de funções 
como groupByKey() e 
reduceByKey() e os 
dados podem vir de 
diversas partições
Resultado de funções 
como map() e filter() e 
os dados vem de uma 
única partição
www.datascienceacademy.com.br
Transformações
mapPartition
www.datascienceacademy.com.br
Principais Operações de 
Transformação
www.datascienceacademy.com.br
Map
• Conceito de MapReduce
• Age sobre cada elemento e realiza a mesma operação
www.datascienceacademy.com.br
flatMap
• Funciona como a função Map, mas retorna mais elementos
www.datascienceacademy.com.br
Filter
• Filtra um RDD para retornar elementos
www.datascienceacademy.com.br
Set
• São realizadas em duas RDD’s, com operações de união e interseção
www.datascienceacademy.com.br
http://spark.apache.org/docs/latest/programming-guide.html#transformations
www.datascienceacademy.com.br
http://spark.apache.org/docs/latest/programming-guide.html#transformations
Obrigado
www.datascienceacademy.com.br
Ações
São operações executadas sobre os RDD’s que geram um resultado.
www.datascienceacademy.com.br
Ações
www.datascienceacademy.com.br
Ações
Leitura de um 
arquivo
Divisão do 
arquivo em 
linhas
Mapeamento de 
cada palavra
Redução por 
agregação
Ordenação
Impressão das 
palavras com 
maior 
ocorrência
Transformação Transformação Transformação Transformação AçãoRDD
www.datascienceacademy.com.br
Ações
Ações são operações síncronas mas podemos usar a função 
AsyncRDDActions() para tornar as operações assíncronas
www.datascienceacademy.com.br
Ações
www.datascienceacademy.com.br
Nós devemos colocar os RDD’s em cache, sempre que for 
necessário executar duas ou mais Ações no conjunto de dados. 
Isso melhora a performance.
Ações
www.datascienceacademy.com.br
Ações
Caching Persistence
cache() persistence()
www.datascienceacademy.com.br
Ações
www.datascienceacademy.com.br
E podemos checar o valor usando 
a função getStorageLevel()
www.datascienceacademy.com.br
http://spark.apache.org/docs/latest/programming-guide.html#actions
www.datascienceacademy.com.br
http://spark.apache.org/docs/latest/programming-guide.html#actions
Obrigado
www.datascienceacademy.com.br
Ações
Age no RDD para produzir um resultado
www.datascienceacademy.com.br
http://spark.apache.org/docs/latest/programming-guide.html#actions
www.datascienceacademy.com.br
http://spark.apache.org/docs/latest/programming-guide.html#actions
Obrigado
www.datascienceacademy.com.br

Mais conteúdos dessa disciplina