SlideShare uma empresa Scribd logo

Pré processamento de grandes dados com Apache Spark

Felipe
Felipe

Pequena introdução a formas de preprocessar dados usando a API de DataFrames do Apache Spark. Apresentado no Rio Big Data Meetup de Novembro de 2015.

1 de 28
Baixar para ler offline
Pré-processamento de
Grandes Dados com Apache
Spark
Rio Big Data Meetup - Novembro 2015
Felipe Almeida (falmeida1988@gmail.com | http://queirozf.com)
https://github.com/queirozfcom/rio-big-data-meetup-nov-2015
Estrutura da palestra
● Introdução
● O problema
● Spark
● Spark Dataframes
● Spark UDFs
● Spark ml
● Estudo de caso
2/28
Introdução
● Tarefas de mineração de dados e aprendizado de máquina só são
possíveis após uma etapa de pré-processamento.
● Pergunta: como pré-processar dados da ordem de muitos GB ou
TB?
● Hadoop e Spark
● As versões recentes do Spark adicionaram recursos úteis para
essas tarefas.
3/28
O problema
● Vamos tratar especificamente do problema de extração de
features
○ Isto é, transformar uma massa de dados em um conjunto de
dados onde cada amostra é representada por um vetor de
features
4/28
Spark
● Framework para computação em cluster, feito em Scala.
● Nasceu para resolver dois problemas do Hadoop:
○ Necessidade de persistir em disco após cada job
○ Difícil utilização para tarefas interativas
● Abstração principal: RDD
○ Um dataset distribuído nos nós do cluster
● Suporta várias operações além das famosas map e reduce
5/28
Spark
6/28
carrega um arquivo texto do HDFS
cada linha é transformada em uma lista de
palavras
exemplo de programa Spark usando Python (wordcount)
cada palavra é transformada em uma tupla
(palavra,1)
os pares com a mesma chave (i.e. mesma palavra) são
agrupados e somados
Anúncio

Recomendados

Desenvolvendo Aplicações baseadas em Big Data com PySpark
Desenvolvendo Aplicações baseadas em Big Data com PySparkDesenvolvendo Aplicações baseadas em Big Data com PySpark
Desenvolvendo Aplicações baseadas em Big Data com PySparkVinícius Barros
 
Governança de Dados e Big Data_v02
Governança de Dados e Big Data_v02Governança de Dados e Big Data_v02
Governança de Dados e Big Data_v02Carlos Barbieri
 
Introduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingIntroduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingCloudera, Inc.
 
Demystifying DataFrame and Dataset with Kazuaki Ishizaki
Demystifying DataFrame and Dataset with Kazuaki IshizakiDemystifying DataFrame and Dataset with Kazuaki Ishizaki
Demystifying DataFrame and Dataset with Kazuaki IshizakiDatabricks
 
3D: DBT using Databricks and Delta
3D: DBT using Databricks and Delta3D: DBT using Databricks and Delta
3D: DBT using Databricks and DeltaDatabricks
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDVinicius Buffolo
 

Mais conteúdo relacionado

Mais procurados

07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo FísicoCentro Paula Souza
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버준철 박
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesMarlesson Santana
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...Databricks
 
Spark 2.x Troubleshooting Guide
Spark 2.x Troubleshooting GuideSpark 2.x Troubleshooting Guide
Spark 2.x Troubleshooting GuideIBM
 
Introducing Databricks Delta
Introducing Databricks DeltaIntroducing Databricks Delta
Introducing Databricks DeltaDatabricks
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySparkRussell Jurney
 
Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBDCris Fidelix
 
Introducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data ScienceIntroducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data ScienceDatabricks
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
 
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopProject Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopDatabricks
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational CacheUsing Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational CacheDremio Corporation
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축Juhong Park
 
Webinar | Introduction to Amazon DynamoDB
Webinar | Introduction to Amazon DynamoDBWebinar | Introduction to Amazon DynamoDB
Webinar | Introduction to Amazon DynamoDBAmazon Web Services
 
Real Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS LambdaReal Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS LambdaAmazon Web Services
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 

Mais procurados (20)

07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisões
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
 
Spark 2.x Troubleshooting Guide
Spark 2.x Troubleshooting GuideSpark 2.x Troubleshooting Guide
Spark 2.x Troubleshooting Guide
 
Introducing Databricks Delta
Introducing Databricks DeltaIntroducing Databricks Delta
Introducing Databricks Delta
 
Introduction to PySpark
Introduction to PySparkIntroduction to PySpark
Introduction to PySpark
 
Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBD
 
Apache Spark
Apache SparkApache Spark
Apache Spark
 
Introducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data ScienceIntroducing DataFrames in Spark for Large Scale Data Science
Introducing DataFrames in Spark for Large Scale Data Science
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
Data engineering design patterns
Data engineering design patternsData engineering design patterns
Data engineering design patterns
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a LaptopProject Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
Project Tungsten Phase II: Joining a Billion Rows per Second on a Laptop
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational CacheUsing Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
Webinar | Introduction to Amazon DynamoDB
Webinar | Introduction to Amazon DynamoDBWebinar | Introduction to Amazon DynamoDB
Webinar | Introduction to Amazon DynamoDB
 
Real Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS LambdaReal Time Data Processing Using AWS Lambda
Real Time Data Processing Using AWS Lambda
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 

Semelhante a Pré processamento de grandes dados com Apache Spark

Exemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceExemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceFelipe
 
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...Marcio Machado Pereira
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dadosJean Martina
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDBBrunno Gomes
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosEmbarcados
 
[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
 
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBDesenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBiMasters
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoronaldoferraz
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLRaphael Silva
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctoolse-Setorial
 
Dito Tech Talk RSpec
Dito Tech Talk RSpecDito Tech Talk RSpec
Dito Tech Talk RSpecguest49d83b2
 
Django + extjs pelos forms
Django + extjs pelos formsDjango + extjs pelos forms
Django + extjs pelos formsMoacir Filho
 

Semelhante a Pré processamento de grandes dados com Apache Spark (20)

Exemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduceExemplos de uso de apache spark usando aws elastic map reduce
Exemplos de uso de apache spark usando aws elastic map reduce
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dados
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Oficial
OficialOficial
Oficial
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDB
 
Node JS - Parte 2
Node JS - Parte 2Node JS - Parte 2
Node JS - Parte 2
 
Webinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcadosWebinar: Arquitetura de software para sistemas embarcados
Webinar: Arquitetura de software para sistemas embarcados
 
[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...
 
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBDesenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDB
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
 
Design Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com CtoolsDesign Patterns para Tuning Pentaho com Ctools
Design Patterns para Tuning Pentaho com Ctools
 
Dito Tech Talk RSpec
Dito Tech Talk RSpecDito Tech Talk RSpec
Dito Tech Talk RSpec
 
Django + extjs pelos forms
Django + extjs pelos formsDjango + extjs pelos forms
Django + extjs pelos forms
 

Mais de Felipe

Aula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic taggingAula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic taggingFelipe
 
First steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with ExamplesFirst steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with ExamplesFelipe
 
Word embeddings introdução, motivação e exemplos
Word embeddings  introdução, motivação e exemplosWord embeddings  introdução, motivação e exemplos
Word embeddings introdução, motivação e exemplosFelipe
 
Cloud Certifications - Overview
Cloud Certifications - OverviewCloud Certifications - Overview
Cloud Certifications - OverviewFelipe
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data AnalyticsFelipe
 
Cloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsCloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsFelipe
 
Cloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and AlarmsCloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and AlarmsFelipe
 
Online Machine Learning: introduction and examples
Online Machine Learning:  introduction and examplesOnline Machine Learning:  introduction and examples
Online Machine Learning: introduction and examplesFelipe
 
Aws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and toolsAws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and toolsFelipe
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Felipe
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareFelipe
 
Rachinations
RachinationsRachinations
RachinationsFelipe
 
Ausgewählte preußische Tugenden
Ausgewählte preußische TugendenAusgewählte preußische Tugenden
Ausgewählte preußische TugendenFelipe
 
Short intro to scala and the play framework
Short intro to scala and the play frameworkShort intro to scala and the play framework
Short intro to scala and the play frameworkFelipe
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoFelipe
 
DevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration managementDevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration managementFelipe
 
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrantDevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrantFelipe
 
D3.js 30-minute intro
D3.js   30-minute introD3.js   30-minute intro
D3.js 30-minute introFelipe
 

Mais de Felipe (18)

Aula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic taggingAula rotulação automática - Automatic tagging
Aula rotulação automática - Automatic tagging
 
First steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with ExamplesFirst steps with Keras 2: A tutorial with Examples
First steps with Keras 2: A tutorial with Examples
 
Word embeddings introdução, motivação e exemplos
Word embeddings  introdução, motivação e exemplosWord embeddings  introdução, motivação e exemplos
Word embeddings introdução, motivação e exemplos
 
Cloud Certifications - Overview
Cloud Certifications - OverviewCloud Certifications - Overview
Cloud Certifications - Overview
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data Analytics
 
Cloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and AlarmsCloudwatch: Monitoring your Services with Metrics and Alarms
Cloudwatch: Monitoring your Services with Metrics and Alarms
 
Cloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and AlarmsCloudwatch: Monitoring your AWS services with Metrics and Alarms
Cloudwatch: Monitoring your AWS services with Metrics and Alarms
 
Online Machine Learning: introduction and examples
Online Machine Learning:  introduction and examplesOnline Machine Learning:  introduction and examples
Online Machine Learning: introduction and examples
 
Aws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and toolsAws cost optimization: lessons learned, strategies, tips and tools
Aws cost optimization: lessons learned, strategies, tips and tools
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
 
Boas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de softwareBoas práticas no desenvolvimento de software
Boas práticas no desenvolvimento de software
 
Rachinations
RachinationsRachinations
Rachinations
 
Ausgewählte preußische Tugenden
Ausgewählte preußische TugendenAusgewählte preußische Tugenden
Ausgewählte preußische Tugenden
 
Short intro to scala and the play framework
Short intro to scala and the play frameworkShort intro to scala and the play framework
Short intro to scala and the play framework
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
 
DevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration managementDevOps Series: Extending vagrant with Puppet for configuration management
DevOps Series: Extending vagrant with Puppet for configuration management
 
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrantDevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
DevOps Series: Defining and Sharing Testable Machine Configurations with vagrant
 
D3.js 30-minute intro
D3.js   30-minute introD3.js   30-minute intro
D3.js 30-minute intro
 

Último

MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024Unicesumar
 
MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024
MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024
MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024assedlsam
 
Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...
Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...
Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...AcademiaDL
 
A antropometria compreende o estudo das características mensuráveis do corpo ...
A antropometria compreende o estudo das características mensuráveis do corpo ...A antropometria compreende o estudo das características mensuráveis do corpo ...
A antropometria compreende o estudo das características mensuráveis do corpo ...AaAssessoriadll
 
ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024
ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024
ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024Unicesumar
 
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024assedlsam
 
Tableau Conference 2024 - Brazil Tableau User Group
Tableau Conference 2024 - Brazil Tableau User GroupTableau Conference 2024 - Brazil Tableau User Group
Tableau Conference 2024 - Brazil Tableau User GroupLigia Galvão
 
ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024
ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024
ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024dlkauana81
 
1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...
1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...
1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...Unicesumar
 
5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...
5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...
5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...Unicesumar
 
MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024
MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024
MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024dlkauana81
 
ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024
ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024
ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024dlkauana81
 
MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024
MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024
MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024assedlsam
 
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024miladlasse
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024taynaradl79
 
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...miladlasse
 
Entender e compreender as teorias que embasaram e ainda embasam as tendências...
Entender e compreender as teorias que embasaram e ainda embasam as tendências...Entender e compreender as teorias que embasaram e ainda embasam as tendências...
Entender e compreender as teorias que embasaram e ainda embasam as tendências...mariaclarinhaa2723
 
a. Cite e explique os três princípios básicos da progressão do treinamento de...
a. Cite e explique os três princípios básicos da progressão do treinamento de...a. Cite e explique os três princípios básicos da progressão do treinamento de...
a. Cite e explique os três princípios básicos da progressão do treinamento de...Unicesumar
 
“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...
“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...
“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...AssessoriaDl1
 
Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...
Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...
Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...leitev350
 

Último (20)

MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
 
MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024
MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024
MAPA - GPUB - ADMINISTRAÇÃO VOLTADA Á GESTÃO PÚBLICA - 51/2024
 
Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...
Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...
Suponha que uma fazenda agrícola esteja considerando a expansão de sua produç...
 
A antropometria compreende o estudo das características mensuráveis do corpo ...
A antropometria compreende o estudo das características mensuráveis do corpo ...A antropometria compreende o estudo das características mensuráveis do corpo ...
A antropometria compreende o estudo das características mensuráveis do corpo ...
 
ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024
ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024
ATIVIDADE 1 - TEORIAS DA ADMINISTRAÇÃO - 51 2024
 
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
MAPA - TEORIAS DA ADMINISTRAÇÃO - 51/2024
 
Tableau Conference 2024 - Brazil Tableau User Group
Tableau Conference 2024 - Brazil Tableau User GroupTableau Conference 2024 - Brazil Tableau User Group
Tableau Conference 2024 - Brazil Tableau User Group
 
ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024
ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024
ATIVIDADE 1 - IFPC - TEORIA DO DIREITO - 51/2024
 
1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...
1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...
1. Solicitar ao entrevistado uma breve apresentação da organização, mencionan...
 
5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...
5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...
5. Na sua opinião, em que medida os princípios da ORT de Taylor ainda são rel...
 
MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024
MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024
MAPA – SAUDE - MENTALIDADE CRIATIVA E EMPREENDEDORA - 51/2024
 
ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024
ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024
ATIVIDADE 1 - BEDU - BIOLOGIA E BIOQUÍMICA HUMANA - 51/2024
 
MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024
MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024
MAPA - BEDU - ATIVIDADE FÍSICA E QUALIDADE DE VIDA - 51/2024
 
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 51/2024
 
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...
MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MAPA - DIDÁTICA - 51/2024MA...
 
Entender e compreender as teorias que embasaram e ainda embasam as tendências...
Entender e compreender as teorias que embasaram e ainda embasam as tendências...Entender e compreender as teorias que embasaram e ainda embasam as tendências...
Entender e compreender as teorias que embasaram e ainda embasam as tendências...
 
a. Cite e explique os três princípios básicos da progressão do treinamento de...
a. Cite e explique os três princípios básicos da progressão do treinamento de...a. Cite e explique os três princípios básicos da progressão do treinamento de...
a. Cite e explique os três princípios básicos da progressão do treinamento de...
 
“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...
“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...
“Quando se foram os espanhóis do México e ainda não se preparavam os espanhói...
 
Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...
Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...
Em 26 de janeiro de 2024, a Agência Petrobras fez o seguinte comunicado: Petr...
 

Pré processamento de grandes dados com Apache Spark

  • 1. Pré-processamento de Grandes Dados com Apache Spark Rio Big Data Meetup - Novembro 2015 Felipe Almeida (falmeida1988@gmail.com | http://queirozf.com) https://github.com/queirozfcom/rio-big-data-meetup-nov-2015
  • 2. Estrutura da palestra ● Introdução ● O problema ● Spark ● Spark Dataframes ● Spark UDFs ● Spark ml ● Estudo de caso 2/28
  • 3. Introdução ● Tarefas de mineração de dados e aprendizado de máquina só são possíveis após uma etapa de pré-processamento. ● Pergunta: como pré-processar dados da ordem de muitos GB ou TB? ● Hadoop e Spark ● As versões recentes do Spark adicionaram recursos úteis para essas tarefas. 3/28
  • 4. O problema ● Vamos tratar especificamente do problema de extração de features ○ Isto é, transformar uma massa de dados em um conjunto de dados onde cada amostra é representada por um vetor de features 4/28
  • 5. Spark ● Framework para computação em cluster, feito em Scala. ● Nasceu para resolver dois problemas do Hadoop: ○ Necessidade de persistir em disco após cada job ○ Difícil utilização para tarefas interativas ● Abstração principal: RDD ○ Um dataset distribuído nos nós do cluster ● Suporta várias operações além das famosas map e reduce 5/28
  • 6. Spark 6/28 carrega um arquivo texto do HDFS cada linha é transformada em uma lista de palavras exemplo de programa Spark usando Python (wordcount) cada palavra é transformada em uma tupla (palavra,1) os pares com a mesma chave (i.e. mesma palavra) são agrupados e somados
  • 7. Spark DataFrames ● O módulo spark-sql adicionou o conceito de DataFrames ○ Como usado na linguagem R ou na biblioteca pandas (Python) ● Um DataFrame é comumente utilizado para representar um dataset: ○ Linhas representam cada amostra (ponto) ○ Colunas representam cada feature ● Também é um RDD ○ Do tipo RDD[sql.Row] ○ Suporta também todas as operações de RDD 7/28
  • 8. Spark DataFrames ● Esquema de um DataFrame NxD (N amostras, D features) 8/28 feature #1 feature #2 feature #3 ... feature #D amostra #1 ... amostra #2 ... amostra #3 ... ... ... ... ... ... ... amostra #N ...
  • 9. Spark DataFrames // dataframes moram neste módulo import org.apache.spark.sql._ // construindo um sqlcontext a partir do sparkcontext val sqlContext = new SQLContext(sc) // carregando dados do S3 (schema inferido automaticamente) val df = sqlContext.read.json("s3://path/to/dataset") // select from dataframe where overall > 4.0 df.where(df("overall") > 4.0) 9/28
  • 10. Spark DataFrames - transformações Exemplo: feature scaling (normalização de features) DataFrame original DataFrame modificado aplicação da transformação de normalização 10/28 feature #1 feature #2 amostra #1 2 400 amostra #2 4 200 amostra #3 6 400 feature #1 feature #2 amostra #1 0 1 amostra #2 0.5 0 amostra #3 1 1
  • 11. Spark DataFrames - transformações Exemplo: tokenização (separar texto em tokens) DataFrame original DataFrame modificado 11/28 feature #1 amostra #1 “olá mundo!!” amostra #2 “spark para grandes dados” amostra #3 “usando spark” aplicação da transformação de tokenização feature #1’ amostra #1 [“olá”, “mundo”] amostra #2 [“spark”, “para”, “grandes”, “dados”] amostra #3 [“usando”,”spark”]
  • 12. Spark UDFs ● UDFs: User-defined functions ○ São funções que atuam sobre uma coluna de um DataFrame ● Note a diferença com relações a funções como filter, map, reduce que atuam sobre uma linha de um DataFrame 12/28
  • 13. Spark UDFs ● UDFs podem ser usadas para criar colunas em um DataFrame: import org.apache.spark.sql.functions.udf // uma UDF que retorna o tamanho de uma string val len = udf { str:String => str.length } // aplicar a UDF len à coluna texto e criar uma // nova coluna com o resultado val df1 = df.withColumn("tamanho", len(df("texto")) 13/28
  • 14. Spark UDFs Resultado da aplicação da UDF len : DataFrame df DataFrame df1 14/28 texto amostra #1 “foo” amostra #2 “foo bar” amostra #3 “oi” aplicação da UDF len tamanho amostra #1 3 amostra #2 7 amostra #3 2
  • 15. Spark ml 15/28 ● spark.ml é um componente do módulo spark-mllib ● Disponibiliza, entre outras coisas, várias transformações baseadas em UDFs para manipular um DataFrame ● Entre elas: ○ RegexTokenizer ○ OneHotEncoder ○ StringIndexer ○ MinMaxScaler ○ Bucketizer
  • 16. Spark ml ● RegexTokenizer (String => Vector[String]) ○ Tokeniza strings usando uma regex como delimitador DataFrame df DataFrame df1 16/28 texto amostra #1 “foo,bar” amostra #2 “bar baz” amostra #3 “foo.bar.baz” aplicação do RegexTokenizer usando a regex /s+|,|./ como delimitador tokens amostra #1 [“foo”,”bar”] amostra #2 [“bar”,”baz”] amostra #3 [“foo”,”bar”,”baz”]
  • 17. Spark ml ● StringIndexer (String => Double) ○ Transforma valores únicos em índices numéricos DataFrame df DataFrame df1 17/28 feature #1 amostra #1 “amarelo” amostra #2 “azul” amostra #3 “verde” amostra #4 “amarelo” aplicação do StringIndexer feature #1 mod amostra #1 0.0 amostra #2 1.0 amostra #3 2.0 amostra #4 0.0
  • 18. Spark ml ● OneHotEncoder (Double => Vector[Double]) ○ Transforma índices de features em um domínio em um vetor one-hot DataFrame df DataFrame df1 18/28 aplicação do OneHotEncoder feature #1 amostra #1 0.0 amostra #2 1.0 amostra #3 2.0 amostra #4 0.0 feature #1 mod amostra #1 [1.0,0.0,0.0] amostra #2 [0.0,1.0,0.0] amostra #3 [0.0,0.0,1.0] amostra #4 [1.0,0.0,0.0]
  • 19. Spark ml ● MinMaxScaler (Vector[Double] => Vector[Double]) ○ Normaliza os valores de uma coluna para o range [0,1] DataFrame df DataFrame df1 19/28 aplicação do MinMaxScaler feature #1 amostra #1 [2.0,800] amostra #2 [4.0,1200] amostra #3 [8.0,600] amostra #4 [16.0,200] feature #1 amostra #1 [0.0,0.6] amostra #2 [0.14,1.0] amostra #3 [0.43,0.4] amostra #4 [1.0,0.0]
  • 20. Spark ml ● Bucketizer (Double => Double) ○ Discretiza features contínuas, usando limites DataFrame df DataFrame df1 20/28 aplicação do Bucketizer usando os limites 100, 200, 500, 2000 e 5000 feature #1 amostra #1 329.23 amostra #2 123.38 amostra #3 3289.57 amostra #4 1982.376 feature #1’ amostra #1 1.0 amostra #2 0.0 amostra #3 3.0 amostra #4 2.0
  • 21. Estudo de caso: Reviews Amazon ● Um estudo de caso mostrando várias etapas possíveis para um dataset real ● Não é um processo completo, apenas alguns passos para motivar os ouvintes e dar uma ideia das quantidades envolvidas ○ Usa UDFs e também o módulo spark-mllib ● Código completo em https://github.com/queirozfcom/rio-big-data- meetup-nov-2015 ○ Incluindo a criação dos clusters usando AWS EMR 21/28
  • 22. O dataset Cada elemento é uma review de um produto na Amazon.com ● ~ 55 Gb (após desempacotamento) ● ~ 82 Milhões de Reviews ● Maio/1996 - Julho/2014 ● Formato Json ● Link: http://jmcauley.ucsd.edu/data/amazon/ 22/28
  • 23. O dataset ● Elemento de exemplo: { "reviewerID": "A2SUAM", "asin": "00000", "reviewerName": "J. McDonald", "helpful": [2, 3], "reviewText": "I bought this for ...", "overall": 5.0, "summary": "Heavenly Highway!", "unixReviewTime": 1252800000 } 23/28
  • 24. Passos do Pipeline de exemplo 1. Retirar linhas com elementos null 2. Adicionar features para: a. O tamanho do texto do reviewText e do summary b. Período do dia em que a review for feita (dia/noite) c. Período da semana em que a review foi feita (dia útil/fim de semana) 3. Juntar todo o texto corrido (reviewText + summary) em um único campo, passar para minúsculas, tokenizar e transformar em um vetor de frequências (TF) 4. Normalizar a nota (atributo overall) 5. Transformar o atributo helpful em um float e normalizar 24/28
  • 25. Dicas Gerais / Lições aprendidas ● É melhor criar uma máquina EC2, baixar o dataset para ela e, de lá, fazer upload para o S3 ○ Se estiverem na mesma área, o processo é muito mais rápido ● Se usar AWS EMR, cuidado para não esquecer o cluster ligado! ○ Use --auto-terminate ● Habilitar dynamicAllocation ● Recomendo a API Scala pois as outras às vezes ficam defasadas 25/28
  • 26. Mais informações ● Todo o código foi rodado no ambiente da AWS, usando o serviço EMR (Elastic MapReduce), com o build emr-4.0.1 ○ Todo o código usado pode ser obtido em https://github. com/queirozfcom/rio-big-data-meetup-nov-2015 ● Guia para criar um cluster Spark usando o serviço AWS Elastic MapReduce (EMR) ● Guia para usar o Apache Zeppelin no AWS EMR ● Guia para criar UDFs (User-defined Functions) no Spark/pyspark 26/28
  • 28. Agradecimentos ● Professor Alexandre Assis DSc. (orientador do trabalho original) ○ PESC/COPPE UFRJ ● Rosângela Oliveira (colega no trabalho original) ○ rmsilva@cos.ufrj.br ● Julian McAuley PhD. (fornecimento do dataset) 28/28