Saltar al contenido

Spark

Menú

Puedes leer sin crear un espacio. Créalo solo cuando quieras guardar.

Guardar progreso

Lección 3 de 5

Particiones y paralelismo

Broadcast evita mover el lado grande cuando el otro cabe con seguridad en ejecutores.

17 min aprox.

Detalles

Catalyst, particiones, joins y shuffles

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

Reto observable

Ante una consulta con shuffle o skew, localiza la causa en plan y métricas, aplica un único cambio y demuestra una mejora sin alterar el resultado.

Al terminar podrás
  • Leer explain formatted
  • Detectar Exchange, skew y spill
  • Elegir broadcast, repartition o coalesce con evidencia
Prerrequisitos
m04
Última revisión
25 ago 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
03
Operación

Particiones y paralelismo

Broadcast evita mover el lado grande cuando el otro cabe con seguridad en ejecutores.

BroadcastHashJoin distribuye una relación pequeña a cada executor y elimina el shuffle de la grande. El umbral automático o broadcast hint influyen en Catalyst.

Una estimación obsoleta puede emitir un broadcast demasiado grande y causar presión de memoria. SortMergeJoin es razonable para dos lados grandes.

PySparkBroadcast explícito
from pyspark.sql.functions import broadcast
enriched = facts.join(broadcast(dim.select("id", "segment")), "id")

Confirma el tamaño real de dim y el operador del plan.

¿Qué dataset se replica en BroadcastHashJoin?

Profundiza

Un broadcast join cambia quién se mueve. En un shuffle join ambos lados se redistribuyen por clave; en BroadcastHashJoin el lado pequeño se recopila y distribuye a los executors para construir una tabla hash local, de modo que las particiones del lado grande pueden leerse donde están. La ventaja depende del tamaño serializado real y de la memoria disponible en cada executor, no de que el dataset se llame dimensión. Catalyst puede elegir broadcast con estadísticas y umbral, y un hint puede influir, pero forzar una relación creciente puede causar OOM. Cuando ambos lados son grandes, sort-merge suele ser una estrategia razonable aunque implique shuffle.

BroadcastHashJoin

Join que replica una relación pequeña y construye una tabla hash local en cada executor.

Evita redistribuir el lado grande cuando la memoria soporta la réplica.
Estadística de tamaño

Estimación del volumen de una relación usada por el optimizador para comparar estrategias.

Una estimación obsoleta puede conducir a un plan físico inadecuado.
Hint

Indicación declarativa que influye en la estrategia seleccionada por Catalyst.

Debe usarse con evidencia porque puede imponerse sobre una decisión adaptativa más segura.
Resumen

Puntos clave

  • Broadcast mueve el lado pequeño
  • Las estadísticas importan
  • Dos lados grandes suelen requerir shuffle

Evita

  • Broadcast de una dimensión no acotada
  • Forzar hint sin revisar memoria

Vista de lectura · sin ejecución

Learn Databricks

Learn Databricks · commit 08c378c

README.md

Módulo 05

Contenido del módulo