Course Code: pysprkub
Duration: 21 hours
Prerequisites:
Se espera que los participantes tengan:
- Experiencia práctica en programación en Python, incluyendo funciones, módulos y conceptos básicos de programación orientada a objetos.
- Experiencia básica a intermedia en el manejo de Pandas y flujos de trabajo de procesamiento de datos tabulares.
- Familiaridad básica con PySpark y Spark DataFrames, incluyendo lectura de datos, transformaciones, acciones, uniones y agregaciones.
- Comprensión general de SQL y conceptos de procesamiento de datos, como filtrado, agrupación y unión de conjuntos de datos.
- Familiaridad básica con conceptos de Docker y Kubernetes, como contenedores, imágenes y pods. No se requiere experiencia en la administración de Kubernetes.
- Comprensión básica de formatos de datos comunes, como CSV, JSON y Parquet.
Los participantes no necesitan ser administradores de Kubernetes ni especialistas en infraestructura. El curso se centra en cómo los ingenieros de datos, desarrolladores y científicos de datos pueden comprender y optimizar sus cargas de trabajo de Spark en Kubernetes desde la perspectiva de la aplicación y la configuración.
Público Objetivo
Este curso está diseñado para profesionales que desarrollan, mantienen u optimizan cargas de trabajo de procesamiento de datos y aprendizaje automático utilizando Python y Spark en entornos cloud o de contenedores.
Es especialmente adecuado para:
- Ingenieros de Datos que trabajan con PySpark, procesamiento distribuido de datos y pipelines ETL.
- Científicos de Datos que procesan grandes conjuntos de datos o ejecutan cargas de trabajo de aprendizaje automático con Spark, Pandas o Polars.
- Desarrolladores de Python que trabajan con aplicaciones intensivas en datos y buscan mejorar la eficiencia de la memoria y el rendimiento de procesamiento.
- Ingenieros de Machine Learning que gestionan cargas de trabajo de preparación de datos y entrenamiento de modelos en entornos Kubernetes o cloud compartidos.
- Ingenieros Analíticos que trabajan con grandes conjuntos de datos y buscan mejorar la eficiencia del procesamiento de datos.
- Ingenieros de DevOps, Plataforma y Cloud que apoyan cargas de trabajo de Spark en Kubernetes y necesitan comprender cómo la configuración a nivel de aplicación afecta el uso de recursos y el rendimiento.
- Líderes Técnicos y Arquitectos de Soluciones involucrados en el diseño u optimización de plataformas modernas de procesamiento de datos.
Overview:
Este curso práctico de tres días se centra en la creación y optimización de cargas de trabajo de procesamiento de datos eficientes utilizando PySpark, Pandas y Polars en entornos basados en Kubernetes.
Los participantes desarrollarán una comprensión práctica de cómo se ejecutan las aplicaciones de Spark en Kubernetes y cómo las decisiones de configuración a nivel de aplicación influyen en el rendimiento, la escalabilidad, el consumo de recursos y el costo. El curso cubre áreas clave de optimización, como el tamaño de los executors, la asignación de memoria, la asignación dinámica, las estrategias de particionamiento, el comportamiento del shuffle, el problema de los archivos pequeños y el procesamiento eficiente de Parquet.
También aborda desafíos comunes al trabajar con Pandas, como las limitaciones de memoria y los errores de insuficiencia de memoria, e introduce Polars como una alternativa de alto rendimiento para cargas de trabajo específicas. A través de ejercicios prácticos, los participantes diagnosticarán problemas de rendimiento y memoria, compararán diferentes estrategias de configuración y aplicarán técnicas de optimización a escenarios realistas de ETL y aprendizaje automático.
El énfasis a lo largo del curso recae en la toma de decisiones práctica: entender cómo identificar cuellos de botella, seleccionar la herramienta adecuada, configurar Spark de manera eficiente y equilibrar el rendimiento con el consumo de recursos de infraestructura y el costo.
Course Outline:
Módulo 1: Fundamentos de Big Data y Spark
- Vista general del ecosistema de Big Data y el papel de Spark en las plataformas de datos modernas
- Comprensión de la arquitectura de Spark: driver, executors, administrador del clúster, evaluación diferida, DAG y planificación de ejecución
- Diferencias entre las APIs de RDD y DataFrame y cuándo utilizar cada enfoque
- Creación y configuración de SparkSession y fundamentos de la configuración de la aplicación
Módulo 2: DataFrames de PySpark
- Lectura y escritura de datos desde fuentes y formatos empresariales: CSV, JSON, Parquet y Delta
- Trabajo con DataFrames de PySpark: transformaciones, acciones, expresiones de columnas, filtrado, uniones y agregaciones
- Implementación de operaciones avanzadas como funciones de ventana, manejo de marcas de tiempo y trabajo con datos anidados
- Aplicación de controles de calidad de datos y escritura de código PySpark reutilizable y mantenible
Módulo 3: Fundamentos de Kubernetes y Docker para usuarios de Spark
- Comprensión de cómo las imágenes de Docker y los pods de Kubernetes se relacionan con los procesos de driver y executor de Spark: una vista conceptual para consumidores del clúster, no para administradores
- Entender qué ocurre cuando una tarea de Spark se ejecuta en Kubernetes: programación de pods, solicitudes y límites de recursos, y cómo los ajustes de sesión se mapean en ellos
- Comprender qué controlas mediante los parámetros de sesión de Spark frente a lo que el equipo de plataforma controla mediante la aprovisionamiento del clúster, y por qué este límite es importante para la sintonización
- Ejercicio práctico: Inspeccionar una tarea de Spark-on-Kubernetes en ejecución en el clúster de arena y identificar los pods de driver y executor
Módulo 4: Configuración de Sesión de Spark en Kubernetes: Análisis detallado
- Comprensión del recuento de executors frente al tamaño de los executors: compensaciones entre memoria y núcleos y cómo razonar sobre ellas
- Asignación de memoria para driver y executors, sobrecarga de memoria y cómo estas se traducen en recursos de pod
- Asignación dinámica: cómo se comporta en Kubernetes, cuándo ahorra recursos y cuándo no lo hace
- Ejercicio práctico: Ejecutar la misma tarea con diferentes configuraciones de executors y núcleos y comparar el tiempo de ejecución y el uso de recursos
Módulo 5: Comportamiento de Escalado y Optimización de Costos
- Comprensión de cómo agregar o eliminar nodos cambia el comportamiento de la tarea, el tiempo de finalización y el consumo de recursos
- Comparación de muchos executors pequeños frente a algunos grandes: compensaciones entre rendimiento y costo
- Comportamiento del shuffle y ajuste de particiones de shuffle, incluido el cálculo del impacto en el costo de las opciones de configuración
- Ejercicio práctico: Escalar el clúster de arena de cinco a diez nodos y observar el efecto en el tiempo de finalización de la tarea y el consumo de recursos
Módulo 6: Ingesta de Datos Eficiente y Particionamiento
- Comprensión del problema de los archivos pequeños: por qué las fuentes divididas en muchos archivos Parquet de 1–5 MB degradan el rendimiento y distorsionan el particionamiento
- Estrategias de reparticionado y coalescencia
- Control de los tamaños de partición en la lectura y en la escritura
- Escritura eficiente de Parquet para evitar recrear el problema de archivos pequeños aguas abajo
- Ejercicio práctico: Cargar un conjunto de datos compuesto por muchas particiones Parquet pequeñas, aplicar diferentes estrategias de reparticionado y comparar el rendimiento antes y después de la optimización
Módulo 7: Gestión de Memoria en Pandas y Diagnóstico de Fallos
- Comprensión de las causas raíz de los errores de insuficiencia de memoria en Pandas y reconocimiento de los síntomas
- Aplicación de patrones de conversión eficientes en memoria entre Spark y Pandas
- Evitar explosiones de memoria al escribir grandes conjuntos de datos en CSV
- Uso de procesamiento por lotes (chunking) y optimización de dtype para entornos restringidos
- Ejercicio práctico: Reproducir un escenario típico de insuficiencia de memoria en Pandas y resolverlo utilizando chunking y optimización de dtype
Módulo 8: Polars como Herramienta Complementaria
- Posicionamiento de Polars en relación con Pandas: características de rendimiento, evaluación diferida y comportamiento de la memoria
- Comprensión de dónde encaja Polars junto a PySpark y Pandas en los stacks de datos cloud modernos y los mapas de ruta de migración, incluidos los entornos de AWS
- Ejercicio práctico: Reescribir una transformación intensiva en Pandas en Polars y comparar el uso de memoria y la velocidad de procesamiento
Módulo 9: Aplicación de la Optimización a Cargas de Trabajo ETL y ML
- Aplicación de principios de configuración, particionamiento y gestión de memoria en un pipeline ETL realista
- Comprensión de las consideraciones de optimización específicas para cargas de trabajo de aprendizaje automático que se ejecutan en el mismo clúster
- Aplicación de un flujo de trabajo práctico de sintonización para diagnosticar sistemáticamente problemas de costo y rendimiento
- Ejercicio práctico: Completar un mini proyecto integral que combine carga de datos, transformación y un paso simple de entrenamiento de modelo, donde los participantes ajusten ellos mismos la configuración de Spark
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