df1.join(df2, on, how) поддерживает inner/left/right/full/semi/anti; физический план выбирает broadcast/sort-merge/shuffle hash в зависимости от размеров и хинтов.
Разбор
- Условие: имена колонок или выражение.
- Дубли имён колонок после join требуют alias.
- Broadcast hint для маленькой стороны.
- Exploding join cardinality — частая ошибка.
Итог
Join API декларативен; стратегия исполнения выбирает Catalyst (+hints).