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

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

Чтобы приступить к работе, выполните приведенные действия.

Учебники

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

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

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

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

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

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

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

Возьми записную книжку

Примечание.

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

Python API

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

Databricks может выполнять как одиночные, так и распределенные Python рабочие нагрузки. Для вычислений с одним компьютером можно использовать Python API и библиотеки как обычно. Например, 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 и выше. Для кластеров, работающих под управлением 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 и wheel файлы Python.

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

Совет

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

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

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

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

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

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

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

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

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

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

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

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

  • Часто задаваемые вопросы и советы по перемещению рабочих нагрузок Python в Databricks можно найти в базе знаний Databricks.