GuíaIntermedio

Guía de Spark y Procesamiento Distribuido

Descubre cuándo tu problema de datos deja de caber en un solo nodo, y qué cambia de verdad cuando lo distribuyes. Esta guía retoma el caso Kiosko (cadena de tiendas de conveniencia) justo donde lo dejaron las guías anteriores del ecosistema — con un warehouse dimensional que corre perfecto en DuckDB — y le agrega un dataset sintético de 10 millones de filas para que particionamiento y shuffle se sientan de verdad en tu laptop. Aprendes Apache Spark en modo local (`local[*]`, $0, sin clúster ni cuenta de nube) con la DataFrame API como vehículo principal: el modelo driver/executors, evaluación perezosa, el costo real de un shuffle en `groupBy`/`join`, broadcast join vs sort-merge join, funciones de ventana a escala, el optimizador Catalyst leído con `.explain()`, cuándo cachear (y cuándo no), Parquet particionado, y por qué un UDF de Python normal es lento frente a un `pandas_udf` vectorizado con Arrow. Ninguna afirmación de rendimiento se mide con cronómetro — todo se sostiene con el plan de ejecución. Cierra con el criterio honesto que la mayoría de guías de Spark del mercado se saltan: cuándo Kiosko (real, 40 filas) NO necesita Spark, y cuándo un Kiosko mucho más grande sí.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Instalar y correr PySpark en modo local (Java 17+, `SparkSession.builder.master("local[*]")`) y verificar que lee los mismos datos de Kiosko que las guías anteriores
  • Distinguir transformations de actions, entender la evaluación perezosa y leer el DAG lógico/físico de una cadena de operaciones antes de ejecutarla
  • Reconstruir `fact_orders` con la DataFrame API (`join`, `withColumn`, `groupBy().agg()`) y verificar que el resultado es idéntico al de motores anteriores del ecosistema
  • Generar de forma determinista un dataset sintético a escala (10 millones de filas) y sentir el costo real de un shuffle en `groupBy`/`join`/`distinct`
  • Elegir entre `repartition()` y `coalesce()`, y decidir cuándo un broadcast join gana frente a un sort-merge join, leyendo ambos en `.explain()`
  • Escribir y leer funciones de ventana (`Window.partitionBy`/`orderBy`) para revenue acumulado y rankings de producto a escala
  • Leer las fases del optimizador Catalyst y el efecto de Adaptive Query Execution (AQE) sobre el plan de una consulta
  • Decidir con criterio cuándo `.cache()`/`.persist()` ayuda y cuándo solo gasta memoria sin beneficio
  • Escribir Parquet particionado a escala y explicar por qué un UDF de Python (`cloudpickle`) es lento frente a un `pandas_udf` vectorizado con Arrow
  • Aplicar un árbol de decisión de "¿necesito Spark?" al Kiosko real (40 filas) y a un Kiosko hipotético mucho más grande, con criterio y sin moda

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Data engineers que ya dominan Python/SQL/DuckDB en un solo nodo y necesitan saber cuándo ese límite deja de alcanzar
  • Devs preparándose para roles o certificaciones que exigen Spark (AWS DEA-C01, Databricks, DP-700) sin querer aprender Scala ni RDDs primero
  • Cualquiera que haya escuchado "usa Spark" para un problema que probablemente no lo necesita, y quiere un criterio de costo real para decidir
  • Data engineers que ya completaron las guías anteriores del ecosistema NIEVA (foundations, Python, modelado, dbt) y quieren llevar el mismo caso a escala distribuida

Requisitos y materiales

  • Python intermedio y comodidad con DataFrames (DuckDB, Polars o pandas)
  • SQL: joins, agregaciones y funciones de ventana básicas
  • Java 17 o superior instalado localmente (se verifica en el Módulo 1)
  • Ideal haber completado `python-for-data-engineering-guide` y `data-modeling-for-analytics-guide` (o equivalente): esta guía retoma directamente el caso y el warehouse dimensional de Kiosko

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!