Saltar al contenido
Lakehouse LabLakehouse LabPreparación Databricks Data Engineer
Módulo 05 · Lección

Shuffles, skew y spills

Contenido abierto

Puedes leer todo sin registrarte. Solo crearemos un perfil anónimo cuando decidas guardar tu progreso.

Lección 4 de 5

Shuffles, skew y spills

Skew, shuffle y spill son síntomas diferentes y requieren evidencia distinta.

Duración
17 min aprox.
Objetivo
Skew, shuffle y spill son síntomas diferentes y requieren evidencia distinta.
Siguiente paso
Continuar con la siguiente lección
Ver detalles del módulo

Catalyst, particiones, joins y shuffles

Razona sobre el plan lógico y físico antes de ajustar configuraciones o añadir cómputo.

Al terminar podrás
  • Leer explain formatted
  • Detectar Exchange, skew y spill
  • Elegir broadcast, repartition o coalesce con evidencia
Ver fuentes y revisión

Metadatos editoriales

Última revisión
21 jul 2026
Nivel
Associate + Professional
Ruta relacionada
core
Dominios blueprint
Troubleshooting and Optimization · Spark execution
Estado
Revisión editorial interna
Fuentes principales
Optimización en Databricks · Debugging con Spark UI
Reportar un error
04
Diagnóstico

Shuffles, skew y spills

Skew, shuffle y spill son síntomas diferentes y requieren evidencia distinta.

Mostrar prerrequisitos
Dificultad
Associate + Professional
Prerrequisitos
m04
Reportar un error en esta lección

Skew aparece cuando pocas tareas duran o leen mucho más que el resto. AQE puede dividir particiones sesgadas, pero una clave nula dominante o diseño incorrecto puede exigir filtrado, salting o preagregación.

Spill indica que una operación usa disco por falta de memoria de ejecución; OOM puede proceder de collect, broadcast excesivo o particiones enormes. Añadir memoria sin corregir el patrón solo pospone el fallo.

Modelo mental

Shuffle describe movimiento de datos entre particiones; skew describe desigualdad; spill describe uso de disco cuando el estado en memoria no cabe. Pueden coexistir, pero no son sinónimos. Un shuffle grande puede estar equilibrado y terminar correctamente. Una clave dominante produce una o pocas tareas largas aunque el resto termine pronto. Spill generalizado puede indicar particiones demasiado grandes, agregaciones extensas o memoria insuficiente. AQE adapta particiones y puede mitigar algunos joins sesgados, pero no corrige una clave nula que debería tratarse semánticamente ni una llamada collect que desborda el driver. El diagnóstico compara distribución por tarea y conecta cada síntoma con el operador del plan.

Skew

Distribución extrema en la que unas pocas particiones contienen mucho más trabajo que sus pares.

Explica colas largas que no mejoran añadiendo workers.
Spill

Escritura temporal a disco de estado de ejecución que no cabe en la memoria disponible.

Indica presión de memoria, aunque su severidad debe cuantificarse.
AQE

Adaptive Query Execution, mecanismo que revisa decisiones físicas con estadísticas observadas durante el run.

Puede fusionar particiones o mitigar skew sin cambiar la lógica declarada.
SQLDetectar claves dominantes
SELECT join_key, count(*) AS rows
FROM main.silver.events
GROUP BY join_key
ORDER BY rows DESC
LIMIT 20;

Compara con la distribución de duración por tarea en Spark UI.

Puntos clave

  • Skew es distribución desigual
  • Spill no equivale siempre a fallo
  • AQE adapta el plan en runtime

Evita

  • Desactivar AQE sin causa
  • Resolver OOM aumentando driver si falla un executor

Recuerdo activo

¿Qué señal distingue skew?

Borrador privado · solo en este navegador
5 lecciones pendientes

Vista de lectura · sin ejecución

Learn Databricks

Learn Databricks · commit 08c378c

README.md