Engenharia e Análise de Dados
24. Apache Spark
24º capítulo da apostila Engenharia e Análise de Dados: estudo contínuo e em linguagem simples sobre Apache Spark, com conceitos conectados, aplicações e mapa mental.
Neste capítulo · 13 seções⌄
- O fio condutor
- Mecanismo de processamento e papéis da aplicação
- RDDs, DataFrames e planos
- Lazy evaluation, ações e stages
- Shuffle e conexão com MapReduce
- Particionamento, skew e persistência
- Recuperação e armazenamento subjacente
- Caso integrado e raciocínio aplicado
- Resumo para revisão
- Ligando as partes em uma análise completa
- Como estudar e aplicar o capítulo
- Síntese e passagem para o próximo capítulo
- Base de cobertura
Apache Spark executa processamento distribuído sobre dados particionados. Para entender seu comportamento, acompanhe a passagem do código declarativo ao plano e às tarefas executadas no cluster. O capítulo explica driver, executors, transformações, ações e shuffle, relacionando desempenho e recuperação às operações efetivamente realizadas.
Com dados compreendidos e governados, avançamos para preparação, modelagem analítica, aprendizado de máquina e processamento em escala. Os capítulos ligam fundamentos, algoritmos e aplicações. Este é o capítulo 24 de 24 da disciplina Engenharia e Análise de Dados. Ele retoma Apache Hadoop e utiliza essa base para avançar. Como capítulo final, ele integra as decisões construídas ao longo da disciplina.
O fio condutor
Ciência de Dados começa com uma pergunta e termina com uma decisão que precisa ser compreendida, avaliada e acompanhada. Entre esses dois pontos, dados são coletados, examinados e transformados; métodos são escolhidos; resultados são validados; e limitações são comunicadas. Nenhuma etapa compensa automaticamente uma falha grave ocorrida na etapa anterior.
Neste capítulo, use Apache Spark para acompanhar três dimensões: o problema que se deseja resolver, a evidência disponível e o critério usado para avaliar o resultado. Essa separação ajuda a evitar soluções tecnicamente sofisticadas que não respondem à necessidade real.
Mecanismo de processamento e papéis da aplicação
Começamos por Mecanismo de processamento e papéis da aplicação, pois essa base organiza os conceitos e exemplos que aparecerão no restante do capítulo.
Spark atende processamento em lote, SQL, streaming e aprendizagem de máquina por componentes de seu ecossistema. Pode acessar HDFS, armazenamento de objetos, bancos e outras fontes, conforme conectores; não depende exclusivamente de um sistema de arquivos ou de YARN. O gerenciador de cluster fornece recursos, enquanto a aplicação organiza seu processamento.
O driver executa a coordenação da aplicação, mantém o contexto e constrói os planos de trabalho. Executors executam tarefas e podem manter partições ou cache para a aplicação. Eles não são servidores permanentes de metadados do HDFS. Trazer um resultado volumoso ao driver pode causar falta de memória mesmo quando o cluster tem capacidade distribuída suficiente: a capacidade agregada não se transforma automaticamente em memória de um processo.
RDDs, DataFrames e planos
Depois de compreender Mecanismo de processamento e papéis da aplicação, passamos a RDDs, DataFrames e planos. A nova seção acrescenta outra etapa ao mesmo raciocínio e mostra como as decisões anteriores influenciam as próximas.
RDD é uma coleção distribuída, particionada e imutável. Transformações geram novos RDDs e a linhagem registra dependências que permitem recomputar partições quando os dados de origem e o cálculo continuam disponíveis. Essas dependências formam um grafo acíclico, DAG. Imutabilidade significa que uma transformação não altera o RDD anterior em seu lugar, e não que toda fonte externa seja imutável.
DataFrames acrescentam estrutura tabular e esquema, permitindo otimizações de nível mais alto. Catalyst analisa e transforma planos de consultas Spark SQL. Operações sobre DataFrames continuam distribuídas; não existe conversão obrigatória e integral para pandas. Conversões como coleta local são escolhas explícitas e devem ser limitadas a resultados compatíveis com o processo consumidor. Preferir expressões compreendidas pelo otimizador pode facilitar execução eficiente, mas o plano deve ser observado.
Continue lendo de graça
O capítulo inteiro está liberado no plano gratuito
Criar conta leva menos de um minuto e não pede cartão. Você destrava o texto completo, o mapa mental, o PDF para estudar off-line e ainda resolve questões inéditas todo dia.
Leu o resumo? Agora pratique.
São 60 questões inéditas de Apache Spark, todas comentadas alternativa por alternativa.
Você volta para este capítulo depois de criar a conta.
Fontes consultadas
- Apache Spark: guia de RDDs
- Apache Spark: visão de cluster
- Acervo publicado de Ciência de Dados: 60 questões deste tópico; conceitos revisados e organizados nas seções.