Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

PySpark — Avanzado

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • PySpark

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la 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 PySpark que necesitan dar el salto hacia el diseño y operación de pipelines distribuidos a escala de producción. A lo largo de ocho horas, los participantes profundizarán en la arquitectura de soluciones ETL multicapa, aprenderán a leer e intervenir el plan físico generado por Catalyst para eliminar cuellos de botella, y dominarán las estrategias de particionado y resolución de data skew que marcan la diferencia entre un job funcional y uno verdaderamente eficiente. Además, explorarán la persistencia transaccional con formatos de tabla modernos como Delta Lake o Iceberg y abordarán la automatización de pipelines batch mediante orquestadores, finalizando con la capacidad de diseñar e implementar un pipeline de extremo a extremo listo para entornos reales de alta demanda.

  1. Comprender los principios de diseño de pipelines ETL distribuidos en PySpark, incluyendo la separación de capas de ingesta, transformación y escritura, así como el funcionamiento del optimizador Catalyst y los formatos de tabla transaccionales con capacidades avanzadas de evolución de esquema y viajes en el tiempo.
  2. Diagnosticar el plan físico de ejecución de una query PySpark e introducir mejoras medibles; evaluar y seleccionar estrategias de particionado y técnicas de mitigación de data skew (salting, AQE, broadcast join) en función del patrón de acceso y el volumen; y optimizar la configuración de recursos del clúster a partir de las métricas de un job real.
  3. Diseñar un pipeline ETL distribuido completo con capa de persistencia transaccional, automatizado mediante un orquestador con gestión de dependencias, reintentos y alertas, y fundamentar decisiones de arquitectura —incluyendo la elección entre procesamiento batch y micro-batch con Structured Streaming— ante requisitos de negocio concretos de volumen, frecuencia y tolerancia a fallos.

Arquitectura de pipelines ETL distribuidos. El curso arranca estableciendo los fundamentos de diseño de un pipeline ETL en PySpark orientado a producción: separación explícita de las capas de ingesta, transformación y escritura, criterios para tomar decisiones de diseño ante requisitos de volumen y frecuencia, y principios de modularidad que facilitan el mantenimiento y la evolución del sistema.

Optimización del plan de ejecución y gestión de recursos. A continuación se estudia en profundidad el optimizador Catalyst: cómo leer e interpretar el Physical Plan, cómo identificar shuffles innecesarios o predicados que no se empujan hacia la fuente, y cómo introducir mejoras con impacto medible. Este bloque se complementa con la sintonización de recursos a nivel de executor —memoria, número de cores y particiones de shuffle— a partir del diagnóstico de métricas reales de un clúster con restricciones definidas.

Particionado y data skew. Se abordan las estrategias de particionado de DataFrames: cuándo usar repartition frente a coalesce, y cuándo conviene un particionado por hash frente a uno por rango, en función del patrón de acceso y el tamaño de los datos. Sobre esa base se analizan los problemas de data skew en agregaciones y joins, y se practican las técnicas de mitigación más efectivas: salting, Adaptive Query Execution (AQE) y broadcast join, con justificación razonada de la elección en cada escenario.

Persistencia transaccional con formatos de tabla modernos. El bloque de persistencia introduce los formatos Delta Lake, Iceberg y Hudi como capa de almacenamiento para pipelines PySpark. Los participantes implementarán al menos dos capacidades avanzadas —time travel, evolución de esquema, operaciones MERGE/upsert— y evaluarán cuándo y por qué cada formato resulta más adecuado.

Procesamiento en tiempo real: batch vs. Structured Streaming. Se analiza el trade-off entre el procesamiento batch tradicional y el micro-batch con Structured Streaming, con criterios objetivos para seleccionar la modalidad correcta. La práctica incluye la implementación de un caso de uso con manejo de estado o ventanas temporales, consolidando la comprensión de las garantías de exactly-once y la gestión de checkpoints.

Automatización y orquestación de pipelines. El curso cierra con la automatización de pipelines batch mediante un orquestador (Apache Airflow, Databricks Workflows o equivalente), cubriendo la definición de dependencias entre tareas, las políticas de reintentos y el sistema de alertas ante fallos, de modo que los participantes puedan trasladar directamente lo aprendido a un entorno de integración continua de datos.

  • Python 3.9 o superior instalado localmente o acceso a un entorno cloud con PySpark preconfigurado (Databricks Community Edition es válido como alternativa gratuita).
  • PySpark 3.3 o superior (se recomienda 3.5 para disponer de las últimas mejoras de AQE).
  • Acceso a un clúster Spark de al menos 4 cores y 8 GB de RAM, o equivalente en modo local con local[4].
  • Delta Lake 2.x o superior (incluido por defecto en Databricks Runtime 12+; en entornos locales se instala vía pip install delta-spark).
  • Apache Airflow 2.6 o superior, o acceso a Databricks Workflows, para los ejercicios de orquestación.
  • Jupyter Lab o un entorno de notebooks compatible para el trabajo práctico.
  • Acceso de lectura/escritura a un sistema de almacenamiento de objetos (S3, ADLS o GCS) o sistema de ficheros local con al menos 10 GB libres para los datasets de práctica.

Se requiere haber completado el curso PPS02 (PySpark — Intermedio) o disponer de experiencia equivalente demostrable con DataFrames, operaciones de transformación y lectura/escritura en PySpark. Los participantes deben sentirse cómodos con Python a nivel intermedio-avanzado, tener nociones básicas de sistemas distribuidos (qué es un driver, un executor, cómo se distribuyen las particiones) y haber trabajado previamente con algún formato de almacenamiento columnar como Parquet o ORC. Es también recomendable familiaridad con entornos de clúster gestionado (Databricks, EMR, Dataproc o similar).