Dans une jointure par diffusion (broadcast), la petite table est envoyée en entier à chaque executor, ce qui évite de redistribuer la grande table par shuffle. Spark la choisit automatiquement sous un seuil de taille configurable, et on peut la demander avec broadcast() quand une table est suffisamment petite.
Exemple
grand.join(F.broadcast(petit), 'id')