Сбой широковещательного соединения Pyspark 1.6.3 в кластере, когда широковещательный кадр данных пуст - PullRequest
0 голосов
/ 04 декабря 2018

У нас есть процесс pyspark (работающий в режиме кластера пряжи), который объединяет 2 таблицы, и соединение выполняется нормально, когда обе стороны таблицы содержат небольшое количество данных.Однако, когда на одной стороне имеется достаточное количество данных (например, 5 миллионов строк, размером 2 ГБ), а сторона широковещательной передачи пуста, это приводит к ошибке соединения «Недостаточно памяти».

Обходной путь - отключить широковещательное соединение.by:

SET spark.sql.autoBroadcastJoinThreshold = -1

Другой способ, которым мы могли бы подумать, это проверить потенциально пустую сторону перед объединением, то есть, если одна сторона пуста, мы вообще не выполняем соединение.

НоЕсть ли лучший способ обойти эту проблему?Или это какая-то проблема с настройкой?

...