Поделиться через


Azure Databricks для разработчиков на Python

В этом разделе содержится руководство по разработке записных книжек и заданий в Azure Databricks с помощью языка Python, включая учебники по общим рабочим процессам и задачам, а также ссылки на API, библиотеки и инструменты.

Чтобы начать работу:

Учебники

В предложенных ниже учебниках содержатся примеры кода и записных книжек для изучения распространенных рабочих процессов. Инструкции по импорту примеров записных книжек в рабочую область см. в этой статье.

Инжиниринг данных

Обработка и анализ данных и машинное обучение

Отладка в записных книжках Python

В примере записной книжки показано, как использовать отладчик Python (pdb) в записных книжках Databricks. Чтобы использовать отладчик Python, необходимо запустить Databricks Runtime 11.3 LTS или более поздней версии.

С помощью Databricks Runtime 12.2 LTS и более поздних версий можно использовать обозреватель переменных переменных Python для отслеживания текущего значения переменных Python в пользовательском интерфейсе записной книжки. Обозреватель переменных можно использовать для наблюдения за значениями переменных Python при пошаговом переходе по точкам останова.

Пример записной книжки отладчика Python

Получить записную книжку

Примечание.

breakpoint() не поддерживается в IPython и поэтому не работает в записных книжках Databricks. Вместо этого можно использовать import pdb; pdb.set_trace() breakpoint().

API Python

Код Python, выполняемый за пределами Databricks, обычно будет успешно выполняться в Databricks, и наоборот. Если у вас уже есть готовый код, просто импортируйте его в Databricks и начинайте работу. Дополнительные сведения см. в статье "Управление кодом с помощью записных книжек и папок Git Databricks".

Databricks может выполнять рабочие нагрузки на одном компьютере и распределенные рабочие нагрузки Python. Для вычислений на одном компьютере можно использовать API и библиотеки Python обычными образом, например pandas и scikit-learn будут работать "как есть". Для распределенных рабочих нагрузок Python Databricks предлагает два популярных API из поля: PySpark и Pandas API в Spark.

API PySpark

PySpark — это официальный API Python для Apache Spark и объединяет возможности Python и Apache Spark. PySpark является более гибким, чем API Pandas в Spark и обеспечивает обширную поддержку и функции для обработки и анализа данных, таких как Spark SQL, структурированная потоковая передача, MLLib и GraphX.

API Pandas в Spark

Примечание.

Проект Koalas с открытым исходным кодом теперь рекомендует перейти на API Pandas в Spark. API Pandas в Spark доступен в кластерах, которые выполняют Databricks Runtime 10.0 (EoS) и более поздних версий. Для кластеров с Databricks Runtime 9.1 LTS и более ранних версий вместо нее следует использовать Koalas.

Пакет pandas для Python часто используется специалистами по обработке и анализу данных. Однако pandas не масштабируется до больших данных. API Pandas в Spark позволяет устранить этот недостаток, предоставляя API-интерфейсы со всеми возможностями pandas для работы в Apache Spark. Этот API с открытым кодом идеально подходит для специалистов по обработке и анализу данных, которые уже работали с pandas, но не знакомы с Apache Spark.

Управление кодом с помощью записных книжек и папок Databricks Git

Записные книжки Databricks поддерживают язык Python. Функциональные возможности этих записных книжек аналогичны возможностями Jupyter с некоторыми дополнениями, например: встроенные визуализации с использованием больших данных, интеграции Apache Spark для отладки и мониторинга производительности, интеграции MLflow для отслеживания экспериментов машинного обучения. Для начала импортируйте записную книжку. Получив доступ к кластеру, вы сможете подключить записную книжку к этому кластеру и запустить записную книжку.

Совет

Чтобы полностью сбросить состояние записной книжки, перезапустите ядро iPython. Для пользователей Jupyter поясним, что действие "перезапустить ядро" в Jupyter соответствует отключению с повторным подключением записной книжки в Databricks. Чтобы перезапустить ядро в записной книжке Python, щелкните селектор вычислений на панели инструментов записной книжки и наведите указатель мыши на подключенный кластер или хранилище SQL в списке, чтобы отобразить боковое меню. Выберите "Отсоединить" и повторно вложить. Это действие отсоединяет записную книжку от кластера и повторно подключает ее, что приводит к перезапуску процесса Python.

Папки Databricks Git позволяют пользователям синхронизировать записные книжки и другие файлы с репозиториями Git. Папки Databricks Git помогают в работе с версиями кода и совместной работой, а также могут упростить импорт полного репозитория кода в Azure Databricks, просмотр последних версий записных книжек и интеграцию с разработкой интегрированной среды разработки. Для начала работы клонируйте удаленный репозиторий Git. Затем можно открыть или создать записные книжки с клонированием репозитория, подключить записную книжку к кластеру и запустить записную книжку.

Кластеры и библиотеки

Вычислительные ресурсы Azure Databricks обеспечивают управление вычислительными ресурсами для кластеров любого размера: от кластеров одного узла до крупных кластеров. Вы можете настроить для кластера оборудование и библиотеки в соответствии с вашими потребностями. Специалисту по обработке и анализу данных прежде всего нужно создать кластер или применить существующий общий кластер. Получив доступ к кластеру, вы можете подключить записную книжку к кластеру или запустить задание в кластере.

Кластеры Azure Databricks используют среду выполнения Databricks Runtime, которая в стандартной конфигурации содержит множество популярных библиотек, в том числе Apache Spark, Delta Lake и pandas. Кроме того, можно устанавливать дополнительные сторонние или пользовательские библиотеки Python и использовать их в записных книжках и заданиях.

Визуализации

Записные книжки Azure Databricks для Python имеют встроенную поддержку множества типов визуализаций. Вы также можете использовать устаревшие визуализации.

Вы также можете визуализировать данные с помощью сторонних библиотек. Некоторые по умолчанию устанавливаются в Databricks Runtime, и вы можете добавить любые пользовательские библиотеки. Вот некоторые популярные варианты:

Работы

Рабочие нагрузки Python можно автоматизировать как запланированные или триггерные задания в Databricks. Задания могут выполнять записные книжки, скрипты Python и файлы колесика Python.

  • Создание и обновление заданий с помощью пользовательского интерфейса Databricks или REST API Databricks.
  • Пакет SDK для Python Databricks позволяет создавать, изменять и удалять задания программным способом.
  • Интерфейс командной строки Databricks предоставляет удобный интерфейс командной строки для автоматизации заданий.

Совет

Чтобы запланировать скрипт Python вместо записной книжки, используйте поле spark_python_task в разделе tasks в тексте запроса на создание задания.

Машинное обучение

Databricks поддерживает широкий спектр рабочих нагрузок машинного обучения, включая традиционное машинное обучение по табличным данным, глубокое обучение для компьютерного зрения и обработки естественного языка, системы рекомендаций, графовую аналитику и многое другое. Общие сведения о машинном обучении в Databricks см. в статье "ИИ и машинное обучение" в Databricks.

Для алгоритмов машинного обучения можно использовать предварительно установленные библиотеки в Databricks Runtime для Машинное обучение, включая популярные инструменты Python, такие как scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib и XGBoost. Вы также можете установить пользовательские библиотеки.

Для операций машинного обучения (MLOps) Azure Databricks предоставляет управляемую службу для библиотеки MLflow открытый код. С помощью отслеживания MLflow можно записывать разработку моделей и сохранять модели в многократно используемых форматах. Реестр моделей MLflow можно использовать для управления и автоматизации продвижения моделей в рабочую среду. Задания и обслуживание моделей позволяют размещать модели в виде пакетных и потоковых заданий и в качестве конечных точек REST. Дополнительные сведения и примеры см. в разделе управления жизненным циклом машинного обучения с помощью MLflow или документации по API Python MLflow.

Чтобы приступить к работе с типичными рабочими нагрузками машинного обучения, ознакомьтесь со следующими страницами:

Идентификаторы, средства разработчика и пакеты SDK

Вы можете вести разработку кода Python не только в записных книжках Azure Databricks, но и в любых внешних средах, используя PyCharm, Jupyter, Visual Studio Code и другие интегрированные среды разработки (IDE). Для синхронизации работы между внешними средами разработки и Databricks можно использовать несколько механизмов.

  • Код. Вы можете синхронизировать код с помощью Git. См . сведения об интеграции с Git для папок Databricks Git.
  • Библиотеки и задания. Вы можете создавать библиотеки (например, файлы колес Python) и отправлять их в Databricks. Такие библиотеки можно импортировать в записные книжки Databricks или использовать для создания заданий. См . библиотеки и расписания и оркестрации рабочих процессов.
  • Выполнение на удаленном компьютере. Вы можете запустить код из локальной интегрированной среды разработки для интерактивной разработки и тестирования. Интегрированная среда разработки может взаимодействовать с Azure Databricks для выполнения Apache Spark и больших вычислений в кластерах Azure Databricks. См. статью Databricks Connect.

Databricks предоставляет набор пакетов SDK, включая пакет SDK для Python, который поддерживает автоматизацию и интеграцию с внешними инструментами. Пакеты SDK Databricks можно использовать для управления ресурсами, такими как кластеры и библиотеки, код и другие объекты рабочей области, рабочие нагрузки и задания и многое другое. См. пакеты SDK Databricks.

Дополнительные сведения о средах разработки, средствах разработчика и пакетах SDK см. в Средства разработчика.

Дополнительные ресурсы