SlideShare uma empresa Scribd logo
1 de 25
SPARK
BIG DATA E SEU FIEL COMPANHEIRO
ENGENHEIRO DE
DADOS NA
GLOBO.COM
@renan_oliveira
SPARK
é de comer?
NÃO É DE COMER, EU ACHO..
É UM FRAMEWORK
▸ Simples e Performático
▸ Processamento de grandes dados
▸ Descomplicando “big data”
▸ Para desenvolvedores
▸ Estatísticos Friendly
▸ DataFrames estilo Pandas e R
▸ Multi linguagens e databases
▸ Além do Map/Reduce
SPARK
SQL
SPARK
STREAMING MLLIB GRAPHX PACKAGES
DATASET API
LOGICAL PLAN
PHYSICAL PLAN/TUNGSTEN EXECUTION
DATASETS
DE RDD E DATAFRAME PARA
DATASET É A FORMA QUE O SPARK
CONSEGUE SER PERFORMÁTICO, ELE CRIA
“MAGICAMENTE" UM PLANO DE AÇÃO
DISTRIBUÍDO SOBRE AQUELA AÇÃO.
DATASET É LINDO - DATAFRAME É O NOVO DATASET[ROW]
GRANDESDADOS.COM
PRA QUE USAMOS NA GLOBO.COM
▸ recommendation
▸ machine learning
▸ analytics
▸ a/b test
▸ pipeline
▸ workflow
▸ data driven organization
▸ + 50 jobs em produção nesse
momento
▸ Streaming e Batch
▸ Scala e Python
▸ MLlib e SQL
▸ Desde a versão 0.9, 2013
▸ +120 pessoas já usaram na
globo.com
E AÍ VCS USAM MESMO?
UM DOS MAIORES CASES DO BRASIL
SHOW ME THE NUMBERS
▸ 50 milhões de usuários únicos
mês
▸ 3.5 bilhões de eventos por dia
▸ 100 mil novos conteúdos
▸ 1 milhão de conexões
simultâneas
▸ SQL
▸ Algoritmos prontos
▸ Otimizações gratuitas
▸ Open-Souce
▸ Comunidade enorme
▸ maior projeto da apache
▸ n consultorias
VOU TER QUE APRENDER UM MUNDO NOVO?
SPARK 2.0
o que era bom ficou
melhor!
10X MAIS RÁPIDO QUE A 1.6
PARA OPERAÇÕES EM SQL
Spark Release
VELOCIDADE É IMPORTANTE
SCALA - AIRFLOW
EM SERVIÇOS/APIS
TUNGSTEN
INDO ALÉM DA JVM
val pageview = spark.read.parquet(path)
val pvByUserAndProduct = pageview
.groupBy("user", "product")
.count()
pvByUserAndProduct.describe().show()
summary count
count 25236
mean 2.45276
stddev 2.02837
min 1
max 40
val pvValidUsers = removeFromPartitions(pvByUserAndProduct)
def removeFromPartitions(df: DataFrame): DataFrame = {
df.cache()
val partitions = df.select("product").distinct().collect()
val cleanedPartitionsData = partitions.par.map { row =>
val partition = row(0)
val partitionData = df.filter(df("product") === partition)
val cutted = cut99(partitionData)
partitionData.filter(partitionData("count") < cutted)
}
val result = cleanedPartitionsData.reduce[DataFrame] {
case (leftDF, rightDF) => leftDF union rightDF
}
result
}
def cut99(df: DataFrame): Double = {
df.stat.approxQuantile("count", Array(0.99), 0.001).head
}
val pvValidUsers = removeFromPartitions(pvByUserAndProduct)
pvValidUsers.describe().show()
summary count
count 24983
mean 2.33754
stddev 1.79223
min 1
max 9
JUPYTER - PYTHON
ESTAMOS MUDANDO A EMPRESA COM
IF YOU WANT TO
CONVINCE ME OF
SOMETHING…
SHOW ME NUMBERS
OBRIGADO!
RENAN OLIVEIRA - @RENAN_OLIVEIRA
WWW.RENANOLIVEIRA.NET
WWW.GRANDESDADOS.COM
talentos.globo.com

Mais conteúdo relacionado

Mais procurados

Big Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosBig Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosCicero Joasyo Mateus de Moura
 
TDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.com
TDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.comTDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.com
TDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.comtdc-globalcode
 
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...tdc-globalcode
 
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...Cicero Joasyo Mateus de Moura
 
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisBig Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisCicero Joasyo Mateus de Moura
 
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearchProcessamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearchCicero Joasyo Mateus de Moura
 
Excelsior - Perfil usando Big Data e Web Semântica
Excelsior - Perfil usando Big Data e Web SemânticaExcelsior - Perfil usando Big Data e Web Semântica
Excelsior - Perfil usando Big Data e Web SemânticaRenan Moreira de Oliveira
 
TDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONTDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONThiago Santiago
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Thiago Santiago
 
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...Cicero Joasyo Mateus de Moura
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataSandro Andrade
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso PráticoEiti Kimura
 
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...Cicero Joasyo Mateus de Moura
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
OverviewBigData_PythonSudeste2017
OverviewBigData_PythonSudeste2017OverviewBigData_PythonSudeste2017
OverviewBigData_PythonSudeste2017Susana Bouchardet
 
Elastic @ The Ministry of Health/Datasus (P)
Elastic @ The Ministry of Health/Datasus (P)Elastic @ The Ministry of Health/Datasus (P)
Elastic @ The Ministry of Health/Datasus (P)Elasticsearch
 

Mais procurados (20)

Big Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosBig Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dados
 
TDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.com
TDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.comTDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.com
TDC2016POA | Trilha BigData - Google BigQuery: Estudo de Caso Globo.com
 
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
 
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
Processamento e Análise de Dados em Tempo Real com Kafka, ElasticSearch e PyS...
 
Proposta de arquitetura Hadoop
Proposta de arquitetura HadoopProposta de arquitetura Hadoop
Proposta de arquitetura Hadoop
 
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e MaisBig Data Analytics - Data Engineer, Arquitetura, AWS e Mais
Big Data Analytics - Data Engineer, Arquitetura, AWS e Mais
 
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearchProcessamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
Processamento e Análise de Dados em Tempo Real com Python, Kafka e ElasticSearch
 
Excelsior - Perfil usando Big Data e Web Semântica
Excelsior - Perfil usando Big Data e Web SemânticaExcelsior - Perfil usando Big Data e Web Semântica
Excelsior - Perfil usando Big Data e Web Semântica
 
TDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ONTDC 2014 - Hadoop Hands ON
TDC 2014 - Hadoop Hands ON
 
Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014Hadoop - Mãos à massa! Qcon2014
Hadoop - Mãos à massa! Qcon2014
 
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
 
Tirando leite de pedra
Tirando leite de pedraTirando leite de pedra
Tirando leite de pedra
 
Streaming architecture with big data clusters
Streaming architecture with big data clustersStreaming architecture with big data clusters
Streaming architecture with big data clusters
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigData
 
Cassandra Trip Brasil
Cassandra Trip BrasilCassandra Trip Brasil
Cassandra Trip Brasil
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso Prático
 
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...TDC Connections 2022 - Segurança e Anonimização de Dados  em Larga Escala com...
TDC Connections 2022 - Segurança e Anonimização de Dados em Larga Escala com...
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
OverviewBigData_PythonSudeste2017
OverviewBigData_PythonSudeste2017OverviewBigData_PythonSudeste2017
OverviewBigData_PythonSudeste2017
 
Elastic @ The Ministry of Health/Datasus (P)
Elastic @ The Ministry of Health/Datasus (P)Elastic @ The Ministry of Health/Datasus (P)
Elastic @ The Ministry of Health/Datasus (P)
 

Semelhante a Spark: Uma introdução ao framework Big Data

Apache NiFi com postgresql
Apache NiFi com postgresqlApache NiFi com postgresql
Apache NiFi com postgresqlGerdan Santos
 
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Davy Alvarenga Machado
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLRaul Oliveira
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopBig Data Week São Paulo
 
Alta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no AzureAlta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no AzureRubens Guimarães - MTAC MVP
 
Ferramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big DataFerramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big DataAlvaro Viebrantz
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosEiti Kimura
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoOpencadd Advanced Technology
 
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...
Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...Luiz Henrique Zambom Santana
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time Umbler
 
Tdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptTdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptMarcos Artigas
 
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...Joao Galdino Mello de Souza
 

Semelhante a Spark: Uma introdução ao framework Big Data (20)

Apache NiFi com postgresql
Apache NiFi com postgresqlApache NiFi com postgresql
Apache NiFi com postgresql
 
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
 
Apache spark intro
Apache spark introApache spark intro
Apache spark intro
 
Processamento em Big Data
Processamento em Big DataProcessamento em Big Data
Processamento em Big Data
 
Qcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes WorkshopQcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes Workshop
 
Data Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na práticaData Lakes com Hadoop e Spark: Agile Analytics na prática
Data Lakes com Hadoop e Spark: Agile Analytics na prática
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no Hadoop
 
Alta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no AzureAlta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no Azure
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Ferramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big DataFerramentas e Aplicações em Big Data
Ferramentas e Aplicações em Big Data
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivoBig Data com MATLAB (Tiago Monteiro), Webinar ao vivo
Big Data com MATLAB (Tiago Monteiro), Webinar ao vivo
 
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...
Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...Instanciando a Arquitetura Lambda com  GraphX e Elasticsearch 2.0  em uma apl...
Instanciando a Arquitetura Lambda com GraphX e Elasticsearch 2.0 em uma apl...
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time InfluxDb: como monitorar milhares de dados por segundo em real time
InfluxDb: como monitorar milhares de dados por segundo em real time
 
Tdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.pptTdc2016 trilha-banco-influx.ppt
Tdc2016 trilha-banco-influx.ppt
 
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
Melhores práticas de planejamento de capacidade aplicadas num projeto de Tran...
 

Mais de Renan Moreira de Oliveira

PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
AI & Big Data - Personalização da Jornada - PicPay - TDC
AI & Big Data - Personalização da Jornada - PicPay - TDCAI & Big Data - Personalização da Jornada - PicPay - TDC
AI & Big Data - Personalização da Jornada - PicPay - TDCRenan Moreira de Oliveira
 
Big data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dadosBig data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dadosRenan Moreira de Oliveira
 
Transição do desenvolvimento web para apps - o caminho suave
Transição do desenvolvimento web para apps - o caminho suaveTransição do desenvolvimento web para apps - o caminho suave
Transição do desenvolvimento web para apps - o caminho suaveRenan Moreira de Oliveira
 
Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014
Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014
Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014Renan Moreira de Oliveira
 
Introdução a web semântica e o case da globo.com
Introdução a web semântica e o case da globo.comIntrodução a web semântica e o case da globo.com
Introdução a web semântica e o case da globo.comRenan Moreira de Oliveira
 

Mais de Renan Moreira de Oliveira (16)

PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
AI & Big Data - Personalização da Jornada - PicPay - TDC
AI & Big Data - Personalização da Jornada - PicPay - TDCAI & Big Data - Personalização da Jornada - PicPay - TDC
AI & Big Data - Personalização da Jornada - PicPay - TDC
 
AI na jornada do usuário de ecommerce
AI na jornada do usuário de ecommerceAI na jornada do usuário de ecommerce
AI na jornada do usuário de ecommerce
 
RecSys 2020 - iFood recommendation
RecSys 2020 - iFood recommendationRecSys 2020 - iFood recommendation
RecSys 2020 - iFood recommendation
 
Data science Framework
Data science FrameworkData science Framework
Data science Framework
 
iFood Recommendations
iFood RecommendationsiFood Recommendations
iFood Recommendations
 
Sistemas de Recomendação
Sistemas de RecomendaçãoSistemas de Recomendação
Sistemas de Recomendação
 
Big data e Machine Learning na globo.com
Big data e Machine Learning na globo.comBig data e Machine Learning na globo.com
Big data e Machine Learning na globo.com
 
What is AB, MVT and MAB?
What is AB, MVT and MAB?What is AB, MVT and MAB?
What is AB, MVT and MAB?
 
Dados importam, seja data-driven!
Dados importam, seja data-driven!Dados importam, seja data-driven!
Dados importam, seja data-driven!
 
Machine Learning na globo-com
Machine Learning na globo-comMachine Learning na globo-com
Machine Learning na globo-com
 
Big data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dadosBig data e globo.com - Uma visão sobre a cultura de dados
Big data e globo.com - Uma visão sobre a cultura de dados
 
Big data e a globo.com - 2017
Big data e a globo.com - 2017Big data e a globo.com - 2017
Big data e a globo.com - 2017
 
Transição do desenvolvimento web para apps - o caminho suave
Transição do desenvolvimento web para apps - o caminho suaveTransição do desenvolvimento web para apps - o caminho suave
Transição do desenvolvimento web para apps - o caminho suave
 
Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014
Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014
Ontologias e sua utilização em aplicações semânticas - UFF - CASI - 2014
 
Introdução a web semântica e o case da globo.com
Introdução a web semântica e o case da globo.comIntrodução a web semântica e o case da globo.com
Introdução a web semântica e o case da globo.com
 

Spark: Uma introdução ao framework Big Data

  • 1. SPARK BIG DATA E SEU FIEL COMPANHEIRO
  • 3.
  • 5. NÃO É DE COMER, EU ACHO.. É UM FRAMEWORK ▸ Simples e Performático ▸ Processamento de grandes dados ▸ Descomplicando “big data” ▸ Para desenvolvedores ▸ Estatísticos Friendly ▸ DataFrames estilo Pandas e R ▸ Multi linguagens e databases ▸ Além do Map/Reduce
  • 6. SPARK SQL SPARK STREAMING MLLIB GRAPHX PACKAGES DATASET API LOGICAL PLAN PHYSICAL PLAN/TUNGSTEN EXECUTION
  • 7. DATASETS DE RDD E DATAFRAME PARA
  • 8. DATASET É A FORMA QUE O SPARK CONSEGUE SER PERFORMÁTICO, ELE CRIA “MAGICAMENTE" UM PLANO DE AÇÃO DISTRIBUÍDO SOBRE AQUELA AÇÃO. DATASET É LINDO - DATAFRAME É O NOVO DATASET[ROW]
  • 9. GRANDESDADOS.COM PRA QUE USAMOS NA GLOBO.COM ▸ recommendation ▸ machine learning ▸ analytics ▸ a/b test ▸ pipeline ▸ workflow ▸ data driven organization
  • 10. ▸ + 50 jobs em produção nesse momento ▸ Streaming e Batch ▸ Scala e Python ▸ MLlib e SQL ▸ Desde a versão 0.9, 2013 ▸ +120 pessoas já usaram na globo.com E AÍ VCS USAM MESMO?
  • 11. UM DOS MAIORES CASES DO BRASIL SHOW ME THE NUMBERS ▸ 50 milhões de usuários únicos mês ▸ 3.5 bilhões de eventos por dia ▸ 100 mil novos conteúdos ▸ 1 milhão de conexões simultâneas
  • 12. ▸ SQL ▸ Algoritmos prontos ▸ Otimizações gratuitas ▸ Open-Souce ▸ Comunidade enorme ▸ maior projeto da apache ▸ n consultorias VOU TER QUE APRENDER UM MUNDO NOVO?
  • 13. SPARK 2.0 o que era bom ficou melhor!
  • 14. 10X MAIS RÁPIDO QUE A 1.6 PARA OPERAÇÕES EM SQL Spark Release VELOCIDADE É IMPORTANTE
  • 15. SCALA - AIRFLOW EM SERVIÇOS/APIS
  • 17. val pageview = spark.read.parquet(path) val pvByUserAndProduct = pageview .groupBy("user", "product") .count() pvByUserAndProduct.describe().show() summary count count 25236 mean 2.45276 stddev 2.02837 min 1 max 40
  • 18. val pvValidUsers = removeFromPartitions(pvByUserAndProduct) def removeFromPartitions(df: DataFrame): DataFrame = { df.cache() val partitions = df.select("product").distinct().collect() val cleanedPartitionsData = partitions.par.map { row => val partition = row(0) val partitionData = df.filter(df("product") === partition) val cutted = cut99(partitionData) partitionData.filter(partitionData("count") < cutted) } val result = cleanedPartitionsData.reduce[DataFrame] { case (leftDF, rightDF) => leftDF union rightDF } result } def cut99(df: DataFrame): Double = { df.stat.approxQuantile("count", Array(0.99), 0.001).head }
  • 19. val pvValidUsers = removeFromPartitions(pvByUserAndProduct) pvValidUsers.describe().show() summary count count 24983 mean 2.33754 stddev 1.79223 min 1 max 9
  • 20.
  • 21. JUPYTER - PYTHON ESTAMOS MUDANDO A EMPRESA COM
  • 22.
  • 23. IF YOU WANT TO CONVINCE ME OF SOMETHING… SHOW ME NUMBERS
  • 24. OBRIGADO! RENAN OLIVEIRA - @RENAN_OLIVEIRA WWW.RENANOLIVEIRA.NET WWW.GRANDESDADOS.COM