#apache-spark #pyspark #azure-databricks
#apache-spark #pyspark #azure-databricks
Вопрос:
Я новичок в Azure Databricks. У меня есть два входных файла и модель AI на python, я очищаю входные файлы и применяю модель AI к входным файлам, чтобы получить окончательные вероятности. Чтение файлов, загрузка модели, очистка данных, предварительная обработка данных и отображение выходных данных с вероятностями занимают у меня всего несколько минут.
Но пока я пытаюсь записать результат в файл таблицы или паркета, это занимает у меня более 4-5 часов. Я пробовал различные подходы к перераспределению / разделению / сохранению, но ни один из них не работает достаточно быстро.
Мой выходной фрейм данных spark состоит из трех столбцов с 120000000 строками. Размер моего общего кластера составляет 9-узловой кластер с каждым узлом 56 ГБ памяти.
Мои сомнения: — 1.) Является ли это ожидаемым поведением в Azure databricks с медленными возможностями записи. 2.) Правда ли, что мы не можем настраивать конфигурации spark в Azure databricks, azure databricks настраивается с помощью доступной памяти.
Ответ №1:
Производительность зависит от нескольких факторов: для дальнейшего изучения, не могли бы вы поделиться приведенной ниже информацией:
-
Каков размер данных?
-
Каков размер рабочего типа?
-
Поделитесь кодом, который вы используете?
Я бы посоветовал вам ознакомиться с приведенными ниже статьями, которые помогают повысить производительность:
Комментарии:
1. Если мой ответ полезен для вас, не могли бы вы принять его как ответ ? Это может помочь большему количеству людей, у которых есть подобная проблема.
2. @samrat1, я поддержал ваши вопросы по SO, у вас достаточно очков, чтобы принять ответ. Пожалуйста, примите это как ответ. — Спасибо
3. Теперь я принял ответ, спасибо
Ответ №2:
- Я использовал Azure databricks и записал данные в хранилище Azure, и это было быстро.
- Кроме того, databricks размещается в Azure, как и в Aws.Таким образом, все конфигурации spark могут быть установлены.
Как спросил Прадип, каков размер данных и количество разделов? вы можете получить его с помощью df.rdd.getnump Partitions(). Вы пробовали перераспределение перед записью? Спасибо.
Комментарии:
1. Привет, Шрирам, спасибо за информацию. Теперь проблема решена с помощью CHEEKATLAPRADEEP-MSFT info