Чтобы ответить на ваш вопрос
Что не так с перемешанным хеш-соединением?
Сначала я предоставлю некоторый контекст.
Согласно SPARK-11675 Shuffled Hash Join был удален в Spark 1.6 и причина была
... Я думаю, что мы должны просто стандартизировать объединение сортировки слиянием для больших объединенийна данный момент, и создавать более совершенные реализации хеш-соединений, если это необходимо в будущем
и повторно вводить в Spark 2.0 в соответствии с SPARK-13977 , поскольку
ShuffledHashJoin по-прежнему полезен, когда:
1) любой раздел стороны сборки может поместиться в памяти
2) сторона сборки намного меньше, чем сторона потока, хеш-таблица здания на меньшей стороне должнабыть быстрее, чем сортировать большую сторону.
Стоит упомянуть PR для SPARK-13977, который указывает, что Shuffled Hash Join был удален в пользу Sort Merge Join, который равен быстрее и более надежный .
Я не уверен, насколько быстрее Sort Merge Join по сравнению с Shuffled Hash Join но это определенно большеДля надежного Shuffled Hash Join требуется, чтобы хеш-таблица помещалась в памяти, в отличие от Sort Merge Join, который может пролиться на диск.