Ponte en Contacto
 Duración 21 horas

Temario del curso

Módulo 1: Fundamentos de Big Data y Spark

  • Visión 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, ejecutores, administrador de clúster, evaluación perezosa (lazy evaluation), 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 comprensión de los 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 (joins) y agregaciones
  • Implementación de operaciones avanzadas como funciones de ventana, manejo de marcas de tiempo (timestamps) 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 driver y executor de Spark: una visión conceptual para consumidores del clúster, no para administradores
  • Comprensión de lo que ocurre cuando un trabajo de Spark se ejecuta en Kubernetes: programación de pods, solicitudes y límites de recursos, y cómo los parámetros de la sesión se mapean a estos
  • Comprensión de lo que usted controla a través de los parámetros de sesión de Spark frente a lo que el equipo de plataforma controla a través de la aprovisionamiento del clúster, y por qué este límite es importante para el ajuste (tuning)
  • Ejercicio práctico: Inspeccione un trabajo Spark-on-Kubernetes en ejecución en el clúster de sandbox e identifique los pods de driver y ejecutores

Módulo 4: Configuración de la Sesión de Spark en Kubernetes: Análisis Profundo

  • Comprensión del número de ejecutores frente al tamaño de los ejecutores: compensaciones entre memoria y núcleos y cómo razonar sobre ellas
  • Asignación de memoria del driver y del ejecutor, memoria de sobrecarga (overhead), y cómo estas se traducen en recursos del pod
  • Asignación dinámica: cómo se comporta en Kubernetes, cuándo ahorra recursos y cuándo no lo hace
  • Ejercicio práctico: Ejecute el mismo trabajo con diferentes configuraciones de ejecutores y núcleos y compare el tiempo de ejecución y el uso de recursos

Módulo 5: Comportamiento de Escalabilidad y Optimización de Costos

  • Comprensión de cómo la adición o eliminación de nodos cambia el comportamiento del trabajo, el tiempo de finalización y el consumo de recursos
  • Comparación de muchos ejecutores pequeños frente a menos ejecutores grandes: compensaciones de rendimiento y costos
  • Comportamiento del shuffle y ajuste de particiones de shuffle, incluido el cálculo del impacto en los costos de las decisiones de configuración
  • Ejercicio práctico: Escale el clúster de sandbox de cinco a diez nodos y observe el efecto en el tiempo de finalización del trabajo y el consumo de recursos

Módulo 6: Ingesta de Datos y Particionado Eficiente

  • Comprensión del problema de archivos pequeños: por qué las fuentes divididas en muchos archivos Parquet de 1–5 MB degradan el rendimiento y distorsionan el particionado
  • Estrategias de re-particionado y coalescencia
  • Control de los tamaños de partición al leer y al escribir
  • Escritura de Parquet de manera eficiente para evitar recrear el problema de archivos pequeños aguas abajo (downstream)
  • Ejercicio práctico: Cargue un conjunto de datos compuesto por muchas particiones Parquet pequeñas, aplique diferentes estrategias de re-particionado y compare el rendimiento antes y después de la optimización

Módulo 7: Gestión de Memoria y Diagnóstico de Fallos en Pandas

  • Comprensión de las causas raíz de los errores de agotamiento 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 (chunked processing) y optimización de tipos de datos (dtype) para entornos restringidos
  • Ejercicio práctico: Reproducta un escenario típico de agotamiento de memoria en Pandas y resuélvalo utilizando procesamiento por lotes 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 perezosa y comportamiento de memoria
  • Comprensión de dónde encaja Polars junto con PySpark y Pandas en las pila de datos modernas en la nube y en las hojas de ruta de migración, incluidos los entornos de AWS
  • Ejercicio práctico: Reescriba una transformación intensiva en Pandas en Polars y compare el uso de memoria y la velocidad de procesamiento

Módulo 9: Aplicación de la Optimización a Cargas de Trabajo de ETL y ML

  • Aplicación de principios de configuración, particionado y gestión de memoria a través de un pipeline de 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 de ajuste práctico para diagnosticar problemas de costo y rendimiento de manera sistemática
  • Ejercicio práctico: Complete un mini-proyecto de extremo a extremo que combine la carga de datos, la transformación y un paso simple de entrenamiento de modelo, con los participantes ajustando la configuración de Spark por sí mismos

Requerimientos

Los participantes deben contar con:

  • Experiencia práctica con programación en Python, incluida la creación de funciones, módulos y conceptos básicos de programación orientada a objetos.
  • Experiencia básica o intermedia en el trabajo con Pandas y flujos de trabajo de procesamiento de datos tabulares.
  • Conocimientos básicos de PySpark y DataFrames de Spark, incluida la lectura de datos, transformaciones, acciones, uniones (joins) y agregaciones.
  • Una comprensión general de SQL y conceptos de procesamiento de datos, incluido el filtrado, el agrupamiento y la unión de conjuntos de datos.
  • Conocimientos básicos de conceptos de Docker y Kubernetes, como contenedores, imágenes y pods. No se requiere experiencia en 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 que se ejecutan 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 en la nube o contenerizados.

Es particularmente adecuado para:

  • Ingenieros de Datos que trabajan con PySpark, procesamiento de datos distribuido y pipelines de 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 memoria y el rendimiento del procesamiento.
  • Ingenieros de Aprendizaje Automático que gestionan cargas de trabajo de preparación de datos y entrenamiento de modelos en entornos Kubernetes o en la nube compartidos.
  • Ingenieros de Analítica que trabajan con grandes conjuntos de datos y buscan mejorar la eficiencia del procesamiento de datos.
  • Ingenieros de DevOps, Plataforma y Nube que respaldan 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.
  • Responsables Técnicos y Arquitectos de Soluciones involucrados en el diseño u optimización de plataformas modernas de procesamiento de datos.

Número de participantes


Precio por participante

Reseñas (1)

Próximos cursos

Categorías Relacionadas