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