Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Este curso está dirigido a ingenieros de datos y científicos de datos con experiencia previa en Apache Spark que buscan operar y diseñar pipelines de producción a escala empresarial. A lo largo de las 10 horas de formación, el participante profundizará en los mecanismos internos del motor de ejecución de Spark, explorará estrategias avanzadas de optimización de memoria y particionado, y abordará la integración de procesamiento batch y streaming dentro de arquitecturas reales. El curso combina análisis crítico de planes de ejecución mediante Spark UI y explain(), automatización de la detección y corrección de data skew, evaluación comparativa de estrategias de UDFs, diseño de pipelines de machine learning distribuido con MLlib y monitoreo proactivo de jobs en producción; todo ello orientado a que el participante sea capaz de tomar decisiones de arquitectura justificadas con métricas de rendimiento, coste y fiabilidad en entornos con cientos de gigabytes de datos.
Al finalizar el curso, el participante será capaz de:
explain(), identificando ineficiencias como shuffles innecesarios o particiones sesgadas y vinculándolas con su impacto en el tiempo de ejecución.cache(), persist() con nivel de almacenamiento específico o checkpointing— en función del patrón de acceso y el tamaño del dataset, justificando la decisión con criterios de uso de memoria.spark.conf y planificación de particionado previos a la ejecución.Bloque 1 — Arquitectura de pipelines batch a escala
El curso arranca con un análisis profundo de los componentes internos del motor de ejecución de Spark: cómo se planifican los stages, qué provoca un shuffle y de qué modo las decisiones de particionado y formato de almacenamiento (Parquet, Delta Lake, ORC) condicionan el rendimiento en volúmenes superiores a 100 GB. A partir de este marco conceptual, los participantes diseñarán un pipeline batch end-to-end en PySpark que cubra desde la ingesta hasta la escritura final, justificando cada decisión de arquitectura con criterios de coste y latencia.
Bloque 2 — Diagnóstico y optimización del plan de ejecución
Se profundiza en el uso de Spark UI y la instrucción explain() para leer e interpretar planes físicos y lógicos. Los participantes aprenderán a detectar ineficiencias recurrentes —shuffles evitables, product cartesianos, broadcasts subóptimos— y a medir el impacto de sus correcciones en el tiempo de ejecución. Este bloque incluye asimismo la gestión avanzada de memoria: se analizan y contrastan las opciones cache(), persist() con distintos niveles de almacenamiento y checkpointing, estableciendo criterios de selección en función del patrón de acceso y el tamaño del dataset.
Bloque 3 — Data skew: detección, corrección y automatización
El data skew es una de las causas más frecuentes de degradación en pipelines productivos. En este bloque se estudian los patrones de skew más habituales en joins y agregaciones, se definen métricas de ratio de skew y se implementa una función reutilizable que evalúa el desequilibrio y aplica automáticamente salting o reparticionado dinámico según un umbral configurable. La sesión conecta la teoría del particionado con la práctica de ingeniería de software reutilizable.
Bloque 4 — Batch vs. Streaming: evaluación y selección estratégica
Se examinan los modelos de procesamiento continuo y micro-batch de Spark Structured Streaming frente al procesamiento batch tradicional, evaluando cada alternativa desde las dimensiones de latencia, throughput y coste operativo. Los participantes trabajan sobre escenarios de latencia definida y aprenden a argumentar la elección de estrategia con métricas cuantitativas, un ejercicio crítico para el diseño de arquitecturas de datos modernas.
Bloque 5 — UDFs, MLlib y monitoreo en producción
El bloque final aborda tres áreas de madurez productiva. En primer lugar, se compara el rendimiento de Python UDFs frente a Pandas UDFs (basadas en Apache Arrow) y funciones nativas de Spark, midiendo diferencias en tiempo de ejecución y uso de CPU sobre datasets de al menos 10 millones de filas. A continuación, se integra MLlib en un pipeline de machine learning distribuido con Pipeline API, incorporando versionado de transformaciones y evaluación con validación cruzada a escala. El curso culmina con el diseño de un sistema de monitoreo automatizado que recopila métricas clave de jobs en producción —duración de stages, registros procesados y errores de OOM— y genera alertas configurables sin intervención manual.
pyspark, pandas ≥ 1.5 y pyarrow ≥ 10 instalados.delta-spark compatible con la versión de Spark del entorno, necesaria para los ejercicios del Bloque 4.spark.conf.set) en el entorno de clúster utilizado.