SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Hadoop MapReduce and Apache Spark:
Comparing Performance for Distributed
Workloads
Felipe Almeida (falmeida1988@gmail.com)
Rosângela Oliveira (rosangelaoliveira4@yahoo.com.br)
Bancos de Dados não Convencionais 2015/02
Prof. Alexandre Assis
Estrutura
● Motivação
● Ambiente
● Trabalho Preliminar
● Dados utilizados
● Pré-processamento
● Experimentos
● Experimento 1
● Experimento 2
● Conclusões
● Lições aprendidas 2
Motivação
Comparar Hadoop MapReduce e Spark em tarefas
distribuídas, em especial workloads iterativos.
1ª tarefa: Wordcount distribuído
2ª tarefa: Clusterização K-means (ingênua)
3
Ambiente
Os experimentos foram executados em instâncias EC2
do tipo m3.xlarge com:
● 4 processadores
● 15GB RAM
● 80GB de SSD storage.
4
Ambiente
Configuração de cada nó Hadoop
5
YARN_RESOURCEMANAGER_HEAPSIZE 2396
YARN_PROXYSERVER_HEAPSIZE 2396
YARN_NODEMANAGER_HEAPSIZE 2048
HADOOP_JOB_HISTORYSERVER_HEAPSIZE 2396
HADOOP_NAMENODE_HEAPSIZE 1740
HADOOP_DATANODE_HEAPSIZE 757
mapreduce.map.java.opts -Xmx1152m
mapreduce.reduce.java.opts -Xmx2304m
mapreduce.map.memory.mb 1440
mapreduce.reduce.memory.mb 2880
Ambiente
Configuração de cada nó Spark (Setup 1)
Configuração de cada nó Spark (Setup 2)
A configuração com a alocação dinâmica habilitada só é possivel no Yarn.
6
spark.dynamicAllocation.enabled true
--num-executors 2
spark.executor.cores 1
spark.executor.memory 4096
spark.dynamicAllocation.enabled false
Trabalho Preliminar
Dois datasets foram utilizados com o objetivo de
fixar o entendimento do ambiente Hadoop e Spark.
● Text 8: dataset de +- 100Mb, utilizado para
executar o Wordcount local.
● Billion word - dataset de +- 4Gb, utilizado para
executar o Wordcount local e no ambiente EMR da
Amazon.
7
Dados utilizados: Wordcount
Na fase 1 foi utilizado um dataset composto por:
● Informações de pesquisas efetuadas na internet;
● 408 arquivos.txt;
● Tamanho total de 18Gb.
8
Estrutura das Linhas
Dados Utilizados: K-means
Dataset de avalização de produtos vendidos na Amazon.
Originado na UCSD; o dataset é composto por:
● Tamanho total de 60Gb+ (nós usamos 15Gb)
● Total de 24 categorias de produtos (usamos 1 - livros)
● Formato Json
● Abrangendo o período de maio 1996 - julho 2014.
9
Exemplo de uma
review
Pré-processamento
Normalização e limpeza no dataset das reviews da
Amazon, com o objetivo de:
● Obter features das avaliações
● Agrupar características consideradas relevantes
● Adequar os dados para o K-means
● Featurização
● Normalização
Foi usado SparkSQL para a limpeza e formatação dos
dados.
10
Pré-processamento
Features númericas selecionadas:
1. Média da avaliação
2. Tamanho do texto da avalição
3. Número de “estrelas” dado
4. Review feita em dia útil
5. Review feita em fim de semana
6. Review feita durante o dia
7. Review feita durante a noite
11
Pré-processamento
Usamos também o Spark para o pré-processamento:
12
Cria um novo DataFrame com os
dados pré-tratados
Experimentos
Os experimentos foram feitos com o intuito de
comparar o Hadoop MapReduce com o Spark no que
tange à performance e na capacidade de lidar com
grande volume de dados.
Foi usado Amazon EMR para ajudar na reprodutibilida-
de e para facilitar o desenvolvimento dos programas.
13
Experimentos
r
14
Script para criar um cluster na Amazon EMR Interface da Amazon EMR
Experimento 1
15
Execução do Wordcount Distribuido - UMBC DATASET 18Gb
Experimento 1
Ao utilizar a opção Dynamic Allocation do spark, o mesmo
demonstrou uma melhora significativa de desempenho:
16
Experimento 1
17
Experimento 2
O K-means pode ser distribuído da seguinte forma:
Em cada iteração, cada nó pega as suas amostras e os
centros dos clusters atuais para decidir a que cluster cada
amostra pertence. (mapper)
Feito isso, os reducers pegam os centros dos clusters e as
respectivas amostras e calculam novos centros para os
clusters.
18
Experimento 2
19
Experimento 2
20
Conclusões
Em geral, mais nós apresentaram um ganho grande em perfor-
mance, como era esperado.
O Spark tem, em geral, performance superior ao Hadoop, sobre-
tudo em tarefas iterativas, mas também em tarefas de poucas
passadas (como o WordCount).
Utilizar uma configuração com mais nós pode, a partir de um
determinado momento, não causar muita melhora, principalmen-
te quando se analisa o custo-benefício.
21
Conclusões
O algoritmo K-means convergiu relativamente rápido;
● Em geral, menos de 10 iterações
22
Lições Aprendidas
● Configurações podem fazer muita diferença.
● Se o seu projeto usa outras bibliotecas, precisa colocar
todas dentro do Jar que você manda para o cluster.
● Usamos sbt-assembly para montar os Jars do Spark e do
Hadoop
● As versões adequadas devem ser utilizadas a fim de
evitar quebra de pacote.
23
Lições Aprendidas
● Em vez de baixar arquivos grandes para a sua máquina
e fazer upload para o S3, é melhor criar uma outra
máquina EC2, baixar o arquivo nessa máquina e fazer o
upload de lá pois, se os dois estiverem na mesma área
AWS, a transferência é muito mais rápida.
● Testes locais devem ser feitos com pelo menos duas
threads, pois há muitos erros que só aparecem quando
há mais de um nó.
24
Lições Aprendidas
● UDFs (User-defined Functions) são formas ótimas de se
ir incrementando um DataFrame e podem ser usadas
para vários fins:
● Extração de features derivadas
● Adição de dados
● Normalização
● etc.
25
Referências
O código utilizado em todas as etapas está em https:
//github.com/queirozfcom/hadoop_spark_ml_comparison
26

Mais conteúdo relacionado

Mais procurados

Quais são as opções de banco de dados gerenciados na AWS?
 Quais são as opções de banco de dados gerenciados na AWS? Quais são as opções de banco de dados gerenciados na AWS?
Quais são as opções de banco de dados gerenciados na AWS?Amazon Web Services LATAM
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passosrhpinotti
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Alessandro Binhara
 
Schema designer MongoDB
Schema designer MongoDBSchema designer MongoDB
Schema designer MongoDBMarcus Costa
 
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...Flavio Fonte, PMP, ITIL
 

Mais procurados (7)

Spark .net
Spark .netSpark .net
Spark .net
 
Hadoop
HadoopHadoop
Hadoop
 
Quais são as opções de banco de dados gerenciados na AWS?
 Quais são as opções de banco de dados gerenciados na AWS? Quais são as opções de banco de dados gerenciados na AWS?
Quais são as opções de banco de dados gerenciados na AWS?
 
Hadoop - primeiros passos
Hadoop - primeiros passosHadoop - primeiros passos
Hadoop - primeiros passos
 
Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!! Filesystem distribuído com hadoop!!!
Filesystem distribuído com hadoop!!!
 
Schema designer MongoDB
Schema designer MongoDBSchema designer MongoDB
Schema designer MongoDB
 
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data  Cloude...
Big Data – HBase, integrando hadoop, bi e dw; Montando o seu big data Cloude...
 

Destaque

Map-Reduce: Adquirindo informações de dados distribuidos
Map-Reduce: Adquirindo informações de dados distribuidosMap-Reduce: Adquirindo informações de dados distribuidos
Map-Reduce: Adquirindo informações de dados distribuidosJoão Farias
 
Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs Ricardo Machado
 
Modelos de Distribuição e Consistência
Modelos de Distribuição e ConsistênciaModelos de Distribuição e Consistência
Modelos de Distribuição e ConsistênciaJoão Farias
 
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e BazaarGerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e BazaarIvanilton Polato
 

Destaque (6)

Map-Reduce: Adquirindo informações de dados distribuidos
Map-Reduce: Adquirindo informações de dados distribuidosMap-Reduce: Adquirindo informações de dados distribuidos
Map-Reduce: Adquirindo informações de dados distribuidos
 
Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs
 
Modelos de Distribuição e Consistência
Modelos de Distribuição e ConsistênciaModelos de Distribuição e Consistência
Modelos de Distribuição e Consistência
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e BazaarGerenciadores de Controle de Versão: Git, Mercurial e Bazaar
Gerenciadores de Controle de Versão: Git, Mercurial e Bazaar
 
Map reduce vs spark
Map reduce vs sparkMap reduce vs spark
Map reduce vs spark
 

Semelhante a Comparing Hadoop MapReduce and Apache Spark Performance for Distributed Workloads

Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxDell Technologies
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionaisRoberto Oliveira
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na WebMeritt - Cada Aluno é Único
 
Solisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para PostgresqlSolisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para PostgresqlLeonardo Medeiros Martins
 
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
 
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
 
Scaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with HadoopScaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with HadoopJoão Gabriel Lima
 
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...Ricardo Ferreira
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...João Gabriel Lima
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRAmazon Web Services LATAM
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Felipe Schimith Batista
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveFlavio Fonte, PMP, ITIL
 
[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de DadosDeep Tech Brasil
 

Semelhante a Comparing Hadoop MapReduce and Apache Spark Performance for Distributed Workloads (20)

Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
Big data para programadores convencionais
Big data para programadores convencionaisBig data para programadores convencionais
Big data para programadores convencionais
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
MapReduce
MapReduceMapReduce
MapReduce
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
Solisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para PostgresqlSolisc2009 Migrando de Oracle para Postgresql
Solisc2009 Migrando de Oracle para 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
 
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 PySpark
 
Scaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with HadoopScaling bayesian network parameter learning with Hadoop
Scaling bayesian network parameter learning with Hadoop
 
Pos-QCon-BigData
Pos-QCon-BigDataPos-QCon-BigData
Pos-QCon-BigData
 
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
Patterns & Best Practices para uma Arquitetura de Software Baseada em In-Memo...
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMR
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hive
 
[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados
 

Comparing Hadoop MapReduce and Apache Spark Performance for Distributed Workloads

  • 1. Hadoop MapReduce and Apache Spark: Comparing Performance for Distributed Workloads Felipe Almeida (falmeida1988@gmail.com) Rosângela Oliveira (rosangelaoliveira4@yahoo.com.br) Bancos de Dados não Convencionais 2015/02 Prof. Alexandre Assis
  • 2. Estrutura ● Motivação ● Ambiente ● Trabalho Preliminar ● Dados utilizados ● Pré-processamento ● Experimentos ● Experimento 1 ● Experimento 2 ● Conclusões ● Lições aprendidas 2
  • 3. Motivação Comparar Hadoop MapReduce e Spark em tarefas distribuídas, em especial workloads iterativos. 1ª tarefa: Wordcount distribuído 2ª tarefa: Clusterização K-means (ingênua) 3
  • 4. Ambiente Os experimentos foram executados em instâncias EC2 do tipo m3.xlarge com: ● 4 processadores ● 15GB RAM ● 80GB de SSD storage. 4
  • 5. Ambiente Configuração de cada nó Hadoop 5 YARN_RESOURCEMANAGER_HEAPSIZE 2396 YARN_PROXYSERVER_HEAPSIZE 2396 YARN_NODEMANAGER_HEAPSIZE 2048 HADOOP_JOB_HISTORYSERVER_HEAPSIZE 2396 HADOOP_NAMENODE_HEAPSIZE 1740 HADOOP_DATANODE_HEAPSIZE 757 mapreduce.map.java.opts -Xmx1152m mapreduce.reduce.java.opts -Xmx2304m mapreduce.map.memory.mb 1440 mapreduce.reduce.memory.mb 2880
  • 6. Ambiente Configuração de cada nó Spark (Setup 1) Configuração de cada nó Spark (Setup 2) A configuração com a alocação dinâmica habilitada só é possivel no Yarn. 6 spark.dynamicAllocation.enabled true --num-executors 2 spark.executor.cores 1 spark.executor.memory 4096 spark.dynamicAllocation.enabled false
  • 7. Trabalho Preliminar Dois datasets foram utilizados com o objetivo de fixar o entendimento do ambiente Hadoop e Spark. ● Text 8: dataset de +- 100Mb, utilizado para executar o Wordcount local. ● Billion word - dataset de +- 4Gb, utilizado para executar o Wordcount local e no ambiente EMR da Amazon. 7
  • 8. Dados utilizados: Wordcount Na fase 1 foi utilizado um dataset composto por: ● Informações de pesquisas efetuadas na internet; ● 408 arquivos.txt; ● Tamanho total de 18Gb. 8 Estrutura das Linhas
  • 9. Dados Utilizados: K-means Dataset de avalização de produtos vendidos na Amazon. Originado na UCSD; o dataset é composto por: ● Tamanho total de 60Gb+ (nós usamos 15Gb) ● Total de 24 categorias de produtos (usamos 1 - livros) ● Formato Json ● Abrangendo o período de maio 1996 - julho 2014. 9 Exemplo de uma review
  • 10. Pré-processamento Normalização e limpeza no dataset das reviews da Amazon, com o objetivo de: ● Obter features das avaliações ● Agrupar características consideradas relevantes ● Adequar os dados para o K-means ● Featurização ● Normalização Foi usado SparkSQL para a limpeza e formatação dos dados. 10
  • 11. Pré-processamento Features númericas selecionadas: 1. Média da avaliação 2. Tamanho do texto da avalição 3. Número de “estrelas” dado 4. Review feita em dia útil 5. Review feita em fim de semana 6. Review feita durante o dia 7. Review feita durante a noite 11
  • 12. Pré-processamento Usamos também o Spark para o pré-processamento: 12 Cria um novo DataFrame com os dados pré-tratados
  • 13. Experimentos Os experimentos foram feitos com o intuito de comparar o Hadoop MapReduce com o Spark no que tange à performance e na capacidade de lidar com grande volume de dados. Foi usado Amazon EMR para ajudar na reprodutibilida- de e para facilitar o desenvolvimento dos programas. 13
  • 14. Experimentos r 14 Script para criar um cluster na Amazon EMR Interface da Amazon EMR
  • 15. Experimento 1 15 Execução do Wordcount Distribuido - UMBC DATASET 18Gb
  • 16. Experimento 1 Ao utilizar a opção Dynamic Allocation do spark, o mesmo demonstrou uma melhora significativa de desempenho: 16
  • 18. Experimento 2 O K-means pode ser distribuído da seguinte forma: Em cada iteração, cada nó pega as suas amostras e os centros dos clusters atuais para decidir a que cluster cada amostra pertence. (mapper) Feito isso, os reducers pegam os centros dos clusters e as respectivas amostras e calculam novos centros para os clusters. 18
  • 21. Conclusões Em geral, mais nós apresentaram um ganho grande em perfor- mance, como era esperado. O Spark tem, em geral, performance superior ao Hadoop, sobre- tudo em tarefas iterativas, mas também em tarefas de poucas passadas (como o WordCount). Utilizar uma configuração com mais nós pode, a partir de um determinado momento, não causar muita melhora, principalmen- te quando se analisa o custo-benefício. 21
  • 22. Conclusões O algoritmo K-means convergiu relativamente rápido; ● Em geral, menos de 10 iterações 22
  • 23. Lições Aprendidas ● Configurações podem fazer muita diferença. ● Se o seu projeto usa outras bibliotecas, precisa colocar todas dentro do Jar que você manda para o cluster. ● Usamos sbt-assembly para montar os Jars do Spark e do Hadoop ● As versões adequadas devem ser utilizadas a fim de evitar quebra de pacote. 23
  • 24. Lições Aprendidas ● Em vez de baixar arquivos grandes para a sua máquina e fazer upload para o S3, é melhor criar uma outra máquina EC2, baixar o arquivo nessa máquina e fazer o upload de lá pois, se os dois estiverem na mesma área AWS, a transferência é muito mais rápida. ● Testes locais devem ser feitos com pelo menos duas threads, pois há muitos erros que só aparecem quando há mais de um nó. 24
  • 25. Lições Aprendidas ● UDFs (User-defined Functions) são formas ótimas de se ir incrementando um DataFrame e podem ser usadas para vários fins: ● Extração de features derivadas ● Adição de dados ● Normalização ● etc. 25
  • 26. Referências O código utilizado em todas as etapas está em https: //github.com/queirozfcom/hadoop_spark_ml_comparison 26