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.
- Leer explain formatted
- Detectar Exchange, skew y spill
- Elegir broadcast, repartition o coalesce con evidencia
04DiagnósticoShuffles, skew y spills
Skew, shuffle y spill son síntomas diferentes y requieren evidencia distinta.
+
Shuffles, skew y spills
Skew, shuffle y spill son síntomas diferentes y requieren evidencia distinta.
Mostrar prerrequisitos
- Dificultad
- Associate + Professional
- Prerrequisitos
- m04
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.
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.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.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.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