Azure Databricks для разработчиков на Python
В этом разделе содержится руководство по разработке записных книжек и заданий в Azure Databricks с помощью языка Python, включая учебники по общим рабочим процессам и задачам, а также ссылки на API, библиотеки и инструменты.
Чтобы начать работу:
- Импорт кода: импортируйте собственный код из файлов или репозиториев Git или воспользуйтесь предложенным ниже учебником. Databricks рекомендует использовать для обучения интерактивные записные книжки Databricks.
- Запуск кода в кластере: создайте собственный кластер или получите разрешения на использование общего кластера. Подключите к этому кластеру записную книжку и запустите ее.
- Затем можно:
- Работа с большими наборами данных в Apache Spark
- Добавление визуализаций
- Автоматизация рабочей нагрузки в формате задания
- Применение машинного обучения для анализа данных
- Разработка в интегрированных средах разработки
Учебники
В предложенных ниже учебниках содержатся примеры кода и записных книжек для изучения распространенных рабочих процессов. Инструкции по импорту примеров записных книжек в рабочую область см. в этой статье.
Инжиниринг данных
- Руководство по загрузке и преобразованию данных с помощью Кадров данных Apache Spark содержит пошаговое руководство, чтобы узнать о кадрах данных Apache Spark для подготовки и аналитики данных.
- Руководство. Delta Lake.
- Руководство. Запуск первого конвейера Delta Live Tables.
Обработка и анализ данных и машинное обучение
- Начало работы с Apache Spark DataFrames для подготовки и аналитики данных. Руководство. Загрузка и преобразование данных с помощью Кадров данных Apache Spark
- Руководство. Комплексные модели машинного обучения в Azure Databricks. Дополнительные примеры см . в руководствах по началу работы с ИИ и машинным обучением и кратким руководством по MLflow python.
- Мозаика AutoML позволяет быстро приступить к разработке моделей машинного обучения на собственных наборах данных. Этот прозрачный подход создает записные книжки с полным рабочим процессом машинного обучения, которые можно клонировать, изменять и запускать любое количество раз.
- Управление жизненным циклом модели в каталоге Unity
- Руководство: комплексные модели машинного обучения в Azure Databricks
Отладка в записных книжках 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 и использовать их в записных книжках и заданиях.
- Начните с библиотек по умолчанию в версиях заметок о выпуске Databricks Runtime и совместимости. Используйте Databricks Runtime для Машинное обучение для рабочих нагрузок машинного обучения. Полные списки предварительно установленных библиотек см. в заметках о выпуске Databricks Runtime и совместимости.
- Настройте среду, используя библиотеки Python с областью записной книжки, которые позволяют изменять записную книжку или среду заданий с помощью библиотек из PyPI или других репозиториев. Волшебная команда
%pip install my_library
устанавливаетmy_library
на все узлы в текущем кластере, не мешая работе других рабочих нагрузок в общих кластерах. - Если потребуется, установите библиотеки для языков, отличных от 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.
Чтобы приступить к работе с типичными рабочими нагрузками машинного обучения, ознакомьтесь со следующими страницами:
- Обучение в scikit-learn и отслеживание с помощью MLflow: Пример полного процесса создания моделей машинного обучения в Azure Databricks
- Обучение моделей глубокого обучения: Глубокое обучение
- Настройка гиперпараметра: настройка гиперпараметров Parallelize Hyperopt
- Аналитика Графа. Использование GraphFrames в Azure Databricks
Идентификаторы, средства разработчика и пакеты 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 см. в Средства разработчика.
Дополнительные ресурсы
Академия Databricks предлагает курсы для самостоятельного изучения и с инструкторами по многим темам.
Databricks Labs предоставляет средства для разработки Python в Databricks, таких как подключаемый модуль pytest и подключаемый модуль pylint.
Функции, поддерживающие взаимодействие между PySpark и pandas, включают следующие функции:
Средства подключения к базам данных Python и SQL включают:
- Соединитель Databricks SQL для Python позволяет с помощью кода Python выполнять SQL-команды в ресурсах Azure Databricks.
- pyodbc позволяет подключаться из локального кода Python через ODBC к данным, хранящимся в databricks lakehouse.
Часто задаваемые вопросы и советы по перемещению рабочих нагрузок Python в Databricks можно найти в базе знаний Databricks