Запись фрейма данных spark в Azure Databricks

#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:

  1. Я использовал Azure databricks и записал данные в хранилище Azure, и это было быстро.
  2. Кроме того, databricks размещается в Azure, как и в Aws.Таким образом, все конфигурации spark могут быть установлены.

Как спросил Прадип, каков размер данных и количество разделов? вы можете получить его с помощью df.rdd.getnump Partitions(). Вы пробовали перераспределение перед записью? Спасибо.

Комментарии:

1. Привет, Шрирам, спасибо за информацию. Теперь проблема решена с помощью CHEEKATLAPRADEEP-MSFT info