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 profesionales de datos que ya dominan los fundamentos de PySpark y buscan consolidar un perfil técnico capaz de afrontar pipelines de producción con criterio de ingeniería. A lo largo de 8 horas, el participante trabajará en un entorno distribuido real, construyendo pipelines de ingesta multi-formato, comparando estrategias de transformación entre la DataFrame API y Spark SQL, incorporando lógica de negocio mediante UDFs tipadas, y aplicando window functions para métricas analíticas avanzadas. Se dedicará atención especial a la toma de decisiones sobre estrategias de join según el volumen de datos, a la gestión robusta de nulos y esquemas variables, y a la lectura del Spark UI para depurar jobs con fallos o resultados inesperados. Al finalizar, el participante será capaz de diseñar, adaptar y depurar pipelines PySpark intermedios con argumentación técnica sólida sobre rendimiento y mantenibilidad.
pyspark.sql.functions e identificando el impacto en el plan de Catalyst.Bloque 1 — Ingesta multi-formato y gestión de calidad del dato
Se parte del diseño de pipelines de ingesta batch que combinan fuentes heterogéneas (Parquet, CSV y formatos similares), prestando atención a la inferencia y aplicación explícita de esquemas en cada lectura para garantizar la integridad de los datos desde el origen. A continuación se aborda la gestión de datos imperfectos: detección y tratamiento de valores nulos, evolución de esquemas y estrategias de limpieza o relleno adaptadas al significado semántico de cada campo. Ambas capacidades se trabajan de forma integrada, ya que los problemas de calidad suelen manifestarse precisamente en la frontera entre fuentes.
Bloque 2 — DataFrame API vs. Spark SQL y optimización con funciones nativas
Este bloque explora la dualidad entre la DataFrame API y Spark SQL como dos superficies equivalentes sobre el mismo motor de Catalyst, analizando sus diferencias en legibilidad, composabilidad y rendimiento. Se estudia cuándo cada enfoque resulta más adecuado según el perfil del equipo y la complejidad de la lógica. Paralelamente, se profundiza en el coste real de las UDFs Python —incluyendo la serialización y la opacidad frente al optimizador— comparado con el uso de funciones nativas de pyspark.sql.functions, que permiten a Catalyst generar planes de ejecución más eficientes.
Bloque 3 — UDFs tipadas y lógica de negocio personalizada
Cuando la lógica de transformación no puede expresarse mediante funciones nativas, las UDFs Python constituyen la vía de extensión del motor. Este bloque cubre la integración de UDFs dentro de un pipeline de producción, haciendo énfasis en el tipado explícito del valor de retorno y en las implicaciones que tiene su uso sobre el plan de ejecución. Se presentan patrones para minimizar su impacto y criterios para decidir si conviene refactorizarlas hacia alternativas nativas.
Bloque 4 — Estrategias de join y window functions analíticas
Se analizan las dos estrategias principales de join en Spark —broadcast join y shuffle join— y los criterios de selección basados en el volumen relativo de las tablas, el coste del shuffle y el tiempo de ejecución observado. Seguidamente, se trabaja con window functions para el cálculo de métricas por partición temporal o categórica (rankings, medias móviles, acumulados) sin reducir la cardinalidad del DataFrame, lo que las convierte en una alternativa potente a las agregaciones clásicas con groupBy.
Bloque 5 — Depuración y observabilidad con el Spark UI
El bloque final aborda las habilidades de diagnóstico imprescindibles en entornos de producción. Se practica la lectura sistemática del Spark UI —stages, tasks, DAG y métricas de shuffle— para localizar la causa raíz de jobs que fallan o producen resultados incorrectos, complementándola con la interpretación de stack traces del driver. Se trabaja sobre casos reales de fallo con distintas categorías de error (datos, lógica, recursos) y se establece un flujo de depuración reproducible.
pip install pyspark).