Entrar em Contato
 Duração 21 horas

Programa do Curso

Módulo 1: Fundamentos de Big Data e Spark

  • Visão geral do ecossistema de Big Data e o papel do Spark em plataformas de dados modernas
  • Compreensão da arquitetura do Spark: driver, executores, gerenciador de cluster, avaliação preguiçosa (lazy evaluation), DAG e planejamento de execução
  • Diferenças entre as APIs RDD e DataFrame e quando utilizar cada abordagem
  • Criação e configuração do SparkSession e compreensão dos fundamentos de configuração de aplicativos

Módulo 2: DataFrames PySpark

  • Leitura e gravação de dados de fontes e formatos empresariais: CSV, JSON, Parquet e Delta
  • Trabalhando com DataFrames PySpark: transformações, ações, expressões de colunas, filtragem, junções e agregações
  • Implementação de operações avançadas, como funções de janela, tratamento de timestamps e trabalho com dados aninhados
  • Aplicação de verificações de qualidade de dados e escrita de código PySpark reutilizável e mantível

Módulo 3: Fundamentos de Kubernetes e Docker para Usuários de Spark

  • Compreensão de como as imagens Docker e os pods do Kubernetes se relacionam com os processos de driver e executor do Spark — uma visão conceitual para consumidores de cluster, não para administradores
  • Compreensão do que acontece quando um trabalho Spark é executado no Kubernetes: agendamento de pods, solicitações e limites de recursos, e como as configurações de sessão mapeiam neles
  • Compreensão do que você controla por meio dos parâmetros de sessão do Spark versus o que a equipe de plataforma controla por meio do provisionamento do cluster — e por que essa fronteira é importante para o ajuste fino (tuning)
  • Exercício prático: Inspeção de um trabalho Spark-on-Kubernetes em execução no cluster de sandbox e identificação dos pods de driver e executor

Módulo 4: Configuração de Sessão Spark no Kubernetes — Análise Detalhada

  • Compreensão da contagem de executores versus o tamanho dos executores: compensações entre memória e núcleos e como raciocinar sobre elas
  • Alocação de memória para driver e executor, sobrecarga de memória e como isso se traduz em recursos de pods
  • Alocação dinâmica: como ela se comporta no Kubernetes, quando economiza recursos e quando não
  • Exercício prático: Execução do mesmo trabalho com diferentes configurações de executores e núcleos e comparação do tempo de execução e do uso de recursos

Módulo 5: Comportamento de Escala e Otimização de Custos

  • Compreensão de como a adição ou remoção de nós altera o comportamento do trabalho, o tempo de conclusão e o consumo de recursos
  • Comparação de muitos executores pequenos versus poucos grandes: compensações entre desempenho e custo
  • Comportamento de shuffle e ajuste fino de partições de shuffle, incluindo a estimativa do impacto no custo das escolhas de configuração
  • Exercício prático: Escala do cluster de sandbox de cinco para dez nós e observação do efeito no tempo de conclusão do trabalho e no consumo de recursos

Módulo 6: Ingestão Eficiente de Dados e Particionamento

  • Compreensão do problema dos arquivos pequenos: por que fontes divididas em muitos arquivos Parquet de 1–5 MB degradam o desempenho e distorcem o particionamento
  • Estratégias de re-particionamento (repartitioning) e coalescimento (coalescing)
  • Controle do tamanho das partições na leitura e na gravação
  • Gravação de Parquet de forma eficiente para evitar a recreação do problema dos arquivos pequenos a jusante
  • Exercício prático: Carga de um conjunto de dados composto por muitas pequenas partições Parquet, aplicação de diferentes estratégias de re-particionamento e comparação do desempenho antes e depois da otimização

Módulo 7: Gerenciamento de Memória e Diagnóstico de Falhas no Pandas

  • Compreensão das causas raiz de erros de esgotamento de memória no Pandas e reconhecimento dos sintomas
  • Aplicação de padrões de conversão de memória eficiente entre Spark e Pandas
  • Evitar explosões de memória ao gravar grandes conjuntos de dados em CSV
  • Uso de processamento em lotes (chunked processing) e otimização de dtype para ambientes com restrições
  • Exercício prático: Reprodução de um cenário típico de esgotamento de memória no Pandas e resolução usando processamento em lotes e otimização de dtype

Módulo 8: Polars como Ferramenta Complementar

  • Posicionamento do Polars em relação ao Pandas: características de desempenho, avaliação preguiçosa e comportamento de memória
  • Compreensão de onde o Polars se encaixa ao lado do PySpark e do Pandas em pilhas de dados de nuvem modernas e roteiros de migração, incluindo ambientes AWS
  • Exercício prático: Reescrita de uma transformação intensiva em Pandas usando Polars e comparação do uso de memória e da velocidade de processamento

Módulo 9: Aplicação da Otimização a Workloads ETL e de ML

  • Aplicação de princípios de configuração, particionamento e gerenciamento de memória em um pipeline ETL realista
  • Compreensão das considerações de otimização específicas para workloads de aprendizado de máquina executados no mesmo cluster
  • Aplicação de um fluxo de trabalho prático de ajuste fino para diagnosticar sistematicamente problemas de custo e desempenho
  • Exercício prático: Conclusão de um mini-projeto de ponta a ponta combinando carga de dados, transformação e um passo simples de treinamento de modelo, com os participantes ajustando a configuração do Spark por conta própria

Requisitos

Os participantes devem ter:

  • Experiência prática em programação Python, incluindo funções, módulos e conceitos básicos de orientação a objetos.
  • Experiência básica a intermediária em trabalhar com Pandas e fluxos de trabalho de processamento de dados tabulares.
  • Familiaridade básica com PySpark e Spark DataFrames, incluindo leitura de dados, transformações, ações, junções e agregações.
  • Compreensão geral de SQL e conceitos de processamento de dados, incluindo filtragem, agrupamento e junção de conjuntos de dados.
  • Familiaridade básica com conceitos de Docker e Kubernetes, como contêineres, imagens e pods. Não é necessária experiência na administração de Kubernetes.
  • Compreensão básica de formatos de dados comuns, como CSV, JSON e Parquet.

Os participantes não precisam ser administradores de Kubernetes ou especialistas em infraestrutura. O curso foca em como engenheiros de dados, desenvolvedores e cientistas de dados podem compreender e otimizar seus workloads Spark executados no Kubernetes a partir da perspectiva da aplicação e da configuração.

Público-Alvo

Este curso é destinado a profissionais que desenvolvem, mantêm ou otimizam workloads de processamento de dados e aprendizado de máquina utilizando Python e Spark em ambientes de nuvem ou containerizados.

É particularmente adequado para:

  • Engenheiros de Dados que trabalham com PySpark, processamento distribuído de dados e pipelines ETL.
  • Cientistas de Dados que processam grandes conjuntos de dados ou executam workloads de aprendizado de máquina com Spark, Pandas ou Polars.
  • Desenvolvedores Python que trabalham com aplicações intensivas em dados e buscam melhorar a eficiência de memória e o desempenho do processamento.
  • Engenheiros de Aprendizado de Máquina que gerenciam workloads de preparação de dados e treinamento de modelos em ambientes compartilhados de Kubernetes ou nuvem.
  • Engenheiros de Análise que trabalham com grandes conjuntos de dados e buscam melhorar a eficiência no processamento de dados.
  • Engenheiros DevOps, de Plataforma e de Nuvem que dão suporte a workloads Spark no Kubernetes e precisam compreender como a configuração no nível da aplicação afeta o uso de recursos e o desempenho.
  • Líderes Técnicos e Arquitetos de Soluções envolvidos no design ou na otimização de plataformas modernas de processamento de dados.

Número de participantes


Preço por participante

Testemunhos de Clientes (1)

Próximas Formações Provisórias

Categorias Relacionadas