Course Code: pysprkub
Duration: 21 hours

Prerequisites:

Os participantes devem ter:

  • Experiência prática com programação em Python, incluindo funções, módulos e conceitos básicos de orientação a objetos.
  • Experiência básica a intermediária no trabalho com Pandas e fluxos de trabalho de processamento de dados tabulares.
  • Familiaridade básica com PySpark e DataFrames do Spark, incluindo leitura de dados, transformações, ações, junções e agregações.
  • Compreensão geral de conceitos de SQL e 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 em 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 entender e otimizar suas cargas de trabalho Spark executadas no Kubernetes sob a perspectiva de aplicativo e configuração.

Público-Alvo

Este curso é projetado para profissionais que desenvolvem, mantêm ou otimizam cargas de trabalho de processamento de dados e aprendizado de máquina usando Python e Spark em ambientes de nuvem ou containerizados.

É particularmente adequado para:

  • Engenheiros de Dados que trabalham com PySpark, processamento de dados distribuídos e pipelines ETL.
  • Cientistas de Dados que processam grandes conjuntos de dados ou executam cargas de trabalho de aprendizado de máquina com Spark, Pandas ou Polars.
  • Desenvolvedores Python que trabalham com aplicativos intensivos em dados e buscam melhorar a eficiência de memória e o desempenho do processamento.
  • Engenheiros de Aprendizado de Máquina que gerenciam cargas de trabalho de preparação de dados e treinamento de modelos em ambientes Kubernetes ou de nuvem compartilhados.
  • Engenheiros Analíticos que trabalham com grandes conjuntos de dados e buscam melhorar a eficiência do processamento de dados.
  • Engenheiros DevOps, de Plataforma e de Nuvem que dão suporte a cargas de trabalho Spark no Kubernetes e precisam entender como a configuração em nível de aplicativo afeta o uso de recursos e o desempenho.
  • Coordenadores Técnicos e Arquitetos de Soluções envolvidos no projeto ou otimização de plataformas modernas de processamento de dados.

Overview:

Este curso prático de três dias foca na construção e otimização de cargas de trabalho eficientes de processamento de dados usando PySpark, Pandas e Polars em ambientes baseados em Kubernetes.

Os participantes desenvolverão uma compreensão prática de como os aplicativos Spark são executados no Kubernetes e de como as decisões de configuração em nível de aplicativo influenciam desempenho, escalabilidade, consumo de recursos e custos. O curso abrange áreas-chave de otimização, incluindo dimensionamento de executores, alocação de memória, alocação dinâmica, estratégias de particionamento, comportamento de shuffle, problemas de pequenos arquivos e processamento eficiente de Parquet.

O curso também aborda desafios comuns ao trabalhar com Pandas, incluindo limitações de memória e falhas por excesso de memória (out-of-memory), e introduz o Polars como uma alternativa de alto desempenho para cargas de trabalho específicas de processamento de dados. Através de exercícios práticos, os participantes diagnosticarão problemas de desempenho e memória, compararão diferentes estratégias de configuração e aplicarão técnicas de otimização a cenários realistas de ETL e aprendizado de máquina.

O enfoque principal do curso é a tomada de decisão prática: entender como identificar gargalos, selecionar a ferramenta apropriada, configurar o Spark de forma eficiente e equilibrar o desempenho com o consumo de recursos de infraestrutura e os custos.

Course Outline:

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
  • Entendendo a 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 de RDD e DataFrame e quando usar cada abordagem
  • Criação e configuração de SparkSession e compreensão dos fundamentos da configuração de aplicativos

Módulo 2: DataFrames no PySpark

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

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

  • Entendendo 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 do cluster, não administradores
  • Entendendo o 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 sobre eles
  • Entendendo o que você controla através dos parâmetros de sessão do Spark versus o que a equipe de plataforma controla através do provisionamento do cluster — e por que essa fronteira é importante para o ajuste fino (tuning)
  • Exercício prático: Inspecionar um trabalho Spark-on-Kubernetes em execução no cluster de sandbox e identificar os pods de driver e executor

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

  • Entendendo contagem de executores versus tamanho do executor: compensações entre memória e núcleos e como raciocinar sobre elas
  • Alocação de memória para driver e executores, sobrecarga de memória (memory overhead) e como essas se traduzem em recursos de pod
  • Alocação dinâmica: como ela se comporta no Kubernetes, quando salva recursos e quando não salva
  • Exercício prático: Executar o mesmo trabalho sob diferentes configurações de executores e núcleos e comparar tempo de execução e uso de recursos

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

  • Entendendo 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
  • Comparando muitos executores pequenos versus menos executores grandes: compensações entre desempenho e custo
  • Comportamento de shuffle e ajuste de partições de shuffle, incluindo estimativa do impacto no custo das escolhas de configuração
  • Exercício prático: Escalar o cluster de sandbox de cinco para dez nós e observar o efeito no tempo de conclusão do trabalho e no consumo de recursos

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

  • Entendendo o problema dos pequenos arquivos: por que fontes divididas em muitos arquivos Parquet de 1–5 MB degradam o desempenho e distorcem o particionamento
  • Estratégias de reparticionamento e coalescimento
  • Controlando o tamanho das partições na leitura e na escrita
  • Escrita eficiente de Parquet para evitar a recreação do problema de pequenos arquivos a jusante
  • Exercício prático: Carregar um conjunto de dados composto por muitas pequenas partições Parquet, aplicar diferentes estratégias de reparticionamento e comparar o desempenho antes e depois da otimização

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

  • Entendendo as causas raiz de erros de memória insuficiente (out-of-memory) no Pandas e reconhecendo os sintomas
  • Aplicando padrões de conversão eficientes em memória entre Spark e Pandas
  • Evitando explosões de memória ao escrever grandes conjuntos de dados em CSV
  • Usando processamento em lotes (chunked processing) e otimização de dtype para ambientes restritos
  • Exercício prático: Reprodzir um cenário típico de memória insuficiente no Pandas e resolvê-lo 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
  • Entendendo onde o Polars se encaixa junto com PySpark e Pandas em pilhas de dados em nuvem modernas e mapas de migração, incluindo ambientes AWS
  • Exercício prático: Reescrever uma transformação intensiva em Pandas no Polars e comparar o uso de memória e a velocidade de processamento

Módulo 9: Aplicando Otimização a Cargas de Trabalho ETL e de ML

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

Sites Published:

United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理

香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理

USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes

Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars

Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars

Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével

Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars

Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars

Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars

Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars

România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes

Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme

Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars

日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理

Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars

India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars

United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리

Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars

Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars

Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars

Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars

US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars