СПАРК Присоединяйтесь к стратегии в облаке Datafusion - PullRequest
1 голос
/ 10 января 2020

В облаке Datafusion Я использую преобразование объединения для объединения двух таблиц.

Одна из них представляет собой большую таблицу с примерно 87 млн. Объединений, а другая представляет собой таблицу меньшего размера, содержащую всего ~ 250 записей. Я использую 200 разделов в столяре.

Это вызывает следующую ошибку:

org. apache .spark.SparkException: Задание прервано из-за сбоя этапа: Задача 50 в этап 7.0 завершился неудачно 4 раза, последний сбой: потерянная задача 50.3 на этапе 7.0 (TID xxx, cluster_workerx. c .project.internal, исполнитель 6): ExecutorLostFailure (исполнитель 6 завершен из-за выполнения одной из запущенных задач) Причина: исполнитель Тайм-аут сердцебиения после 133355 мс java .util.concurrent.ExecutionException: java .lang.RuntimeException: org. apache .spark.SparkException: Приложение application_xxxxx завершено с ошибочным состоянием

Вкл более пристальный взгляд на искровой пользовательский интерфейс: 200 задач для соединения, почти 80% из 87m записей go в одну задачу O / P, которая завершается неудачно с ошибкой сердцебиения, в то время как у успешных задач очень мало записей O / P ~ < 10k записей

Похоже, что спарк выполняет случайное перемешивание, ха sh Соединение, есть ли способ в datafusion / cdap, где мы можем форсировать широковещательное соединение, так как один из мой стол очень маленький? Или я могу внести изменения в конфигурацию кластера, чтобы это объединение работало?

Какую настройку производительности я могу выполнить в конвейере объединения данных. Я не нашел ссылки на конфигурацию, настройку в документации Datafusion

1 Ответ

1 голос
/ 11 января 2020

Вы можете использовать org.apache.spark.sql.functions.broadcast(Dataset[T]) для пометки набора данных / набора данных, который будет транслироваться во время объединения. Трансляция не всегда гарантирована, но для 250 записей это сработает. Если фрейм данных с 87M строками разделен поровну, это должно улучшить производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...