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