A distributed join associates two DataFrames on a key. Spark chooses a strategy based on table sizes: a broadcast join for a small table, or a sort-merge join that redistributes both sides by key via a shuffle. The choice strongly affects duration and network usage.
Example
commandes.join(clients, 'id_client', 'left')