Разработка файла колес Python с помощью пакетов ресурсов Databricks
В этой статье описывается, как создать, развернуть и запустить wheel-файл Python в рамках проекта Databricks Asset Bundle. См. Что такое пакеты ресурсов Databricks?.
Пример конфигурации, которая создает JAR-файл и отправляет его в каталог Unity, см. в пакете, который отправляет JAR-файл в каталог Unity.
Требования
- Databricks CLI версии 0.218.0 или более поздней. Чтобы проверить установленную версию интерфейса командной строки Databricks, выполните команду
databricks -v
. Чтобы установить интерфейс командной строки Databricks, см. статью "Установка или обновление интерфейса командной строки Databricks". - Удаленная рабочая область должна иметь включенные файлы рабочей области. См. раздел " Что такое файлы рабочей области?".
Решение. Создание пакета вручную или с помощью шаблона
Определите, нужно ли создать начальный пакет с помощью шаблона или создать пакет вручную. Создание пакета с помощью шаблона проще и быстрее, но пакет может создавать содержимое, которое не требуется, и параметры по умолчанию пакета должны быть дополнительно настроены для реальных приложений. Создание пакета вручную обеспечивает полный контроль над параметрами пакета, но вы должны быть знакомы с тем, как работают пакеты, так как вы выполняете всю работу с самого начала. Выберите один из следующих наборов шагов:
Создание пакета с помощью шаблона
В этих шагах вы создадите пакет с помощью шаблона пакета Azure Databricks по умолчанию для Python. В этом руководстве описано, как создать пакет, состоящий из файлов для сборки в файл колесика Python, и определение задания Azure Databricks для создания этого файла колеса Python. Затем вы проверяете, развертываете и пакуете развернутые файлы в wheel-файл Python с помощью задания wheel в рабочей области Azure Databricks.
Шаблон пакета azure Databricks по умолчанию для Python использует средства установки для создания файла колес Python. Если вы хотите использовать Poetry для создания файла wheel для Python вместо этого, следуйте инструкциям далее в этом разделе, чтобы заменить setuptools
реализацию на реализацию с использованием Poetry.
Шаг 1. Настройка аутентификации
На этом шаге вы настроили проверку подлинности между интерфейсом командной строки Databricks на компьютере разработки и рабочей областью Azure Databricks. В этой статье предполагается, что вы хотите использовать аутентификацию OAuth пользователь-к-машине (U2M) и соответствующий профиль конфигурации Azure Databricks с именем DEFAULT
для аутентификации.
Примечание.
Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует использовать авторизацию OAuth машина-к-машине (M2M). Инструкции по настройке проверки подлинности M2M см. в разделе "Проверка подлинности".
Используйте CLI Databricks для управления токенами OAuth на локальном уровне, выполняя следующую команду для каждого указанного рабочего пространства.
В следующей команде замените
<workspace-url>
на URL-адрес рабочего пространства Azure Databricks, напримерhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Azure Databricks. Нажмите,
Enter
чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Любой существующий профиль с тем же именем перезаписывается с введенными сведениями. Профили можно использовать для быстрого переключения контекста проверки подлинности в нескольких рабочих областях.Чтобы получить список существующих профилей, в отдельном терминале или командной строке используйте интерфейс командной строки Databricks для выполнения команды
databricks auth profiles
. Чтобы просмотреть существующие параметры конкретного профиля, выполните командуdatabricks auth env --profile <profile-name>
.В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Azure Databricks.
Чтобы просмотреть текущее значение маркера OAuth профиля и метку времени окончания срока действия маркера, выполните одну из следующих команд:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Если у вас есть несколько профилей с одинаковым значением
--host
, возможно, вам потребуется указать параметры--host
и-p
вместе, чтобы помочь Databricks CLI найти правильные сведения о токене OAuth.
Шаг 2. Создание пакета
Пакет содержит артефакты, которые требуется развернуть, и параметры рабочих процессов, которые требуется запустить.
Используйте терминал или командную строку, чтобы переключиться в каталог на локальном компьютере разработки, который будет содержать созданный пакет шаблона.
Используйте версию Databricks CLI, чтобы выполнить команду
bundle init
.databricks bundle init
Для
Template to use
оставьте значениеdefault-python
по умолчанию, нажавEnter
.Для
Unique name for this project
оставьте значениеmy_project
по умолчанию или введите другое значение, а затем нажмитеEnter
. Это определяет имя корневого каталога для этого пакета. Этот корневой каталог создается в текущем рабочем каталоге.Для
Include a stub (sample) notebook
, выберитеno
и нажмитеEnter
. Это указывает интерфейсу командной строки Databricks не добавлять пример записной книжки в ваш пакет.Для
Include a stub (sample) DLT pipeline
, выберитеno
и нажмитеEnter
. Эта команда инструктирует интерфейс командной строки Databricks не определять образец конвейера DLT в вашем пакете.Для
Include a stub (sample) Python package
этого оставьте значениеyes
по умолчанию, нажав кнопкуEnter
. Это инструктирует Databricks CLI добавить в вашу сборку примерные файлы Python wheel пакета и соответствующие инструкции по сборке.
Шаг 3. Изучение пакета
Чтобы просмотреть файлы, созданные шаблоном, переключитесь в корневой каталог созданного пакета и откройте этот каталог с помощью предпочтительной интегрированной среды разработки, например Visual Studio Code. К файлам, интересующим особый интерес, относятся следующие:
-
databricks.yml
: этот файл указывает программируемое имя пакета, содержит ссылку на определение задания Python wheel, и задает настройки целевой рабочей области. -
resources/<project-name>_job.yml
: Этот файл определяет параметры задачи пакета Python. -
src/<project-name>
: В этом каталоге содержатся файлы, которые использует задание Python wheel для создания whl-файла Python.
Примечание.
Если вы хотите установить файл колеса Python в целевом кластере с установленным databricks Runtime 12.2 LTS или ниже, необходимо добавить в файл следующее сопоставление databricks.yml
верхнего уровня:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
Это сопоставление указывает интерфейсу командной строки Databricks выполнить следующие действия:
- Разверните копию файла колеса Python в фоновом режиме. Это типичный путь развертывания
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Создайте записную книжку в фоновом режиме, содержащую инструкции по установке предыдущего установленного whl-файла Python в целевом кластере. Путь к этой записной книжке обычно —
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
. - При выполнении задания, содержащего задачу Python wheel, и эта задача ссылается на предыдущий файл Python wheel, в фоновом режиме создается задание, которое выполняет предыдущую записную книжку.
Вам не нужно указывать это сопоставление для кластеров назначения, на которых установлена среда выполнения Databricks 13.1 или более поздней версии, поскольку установки Python wheel из файловой системы рабочей области Azure Databricks будут автоматически производиться на этих кластерах.
Шаг 4. Обновление пакета проекта для использования поэзии
По умолчанию шаблон пакета задает сборку файла колеса Python, используя setuptools
вместе с файлами setup.py
и requirements-dev.txt
. Если вы хотите сохранить эти значения по умолчанию, перейдите к шагу 5. Проверьте файл конфигурации пакета проекта.
Чтобы обновить связку проекта для использования Poetry вместо setuptools
, убедитесь, что локальный компьютер разработки соответствует следующим требованиям:
- Поэзия версии 1.6 или более поздней. Чтобы проверить установленную версию поэзии, выполните команду
poetry -V
илиpoetry --version
. Сведения об установке или обновлении поэзии см. в разделе "Установка". - Python версии 3.10 или более поздней. Чтобы проверить версию Python, выполните команду
python -V
илиpython --version
. - Databricks CLI версии 0.209.0 или более поздней. В вашей версии интерфейса командной строки Databricks выполните команду
databricks -v
илиdatabricks --version
. См. статью "Установка или обновление интерфейса командной строки Databricks".
Внесите следующие изменения в пакет проекта:
Из корневого каталога пакета укажите
poetry
инициализировать сборки колес Python для поэзии, выполнив следующую команду:poetry init
Поэзия отображает несколько подсказок для завершения. Для сборки колес Python ответьте на эти запросы следующим образом, чтобы соответствовать соответствующим параметрам по умолчанию в пакете проекта:
- Для
Package name
параметра введите имя дочерней папки в разделе/src
, а затем нажмите клавишуEnter
. Это также должно быть значение пакетаname
, определенное в файле пакетаsetup.py
. - Для
Version
введите0.0.1
и нажмитеEnter
. Это соответствует номеру версии, определенному в файле пакетаsrc/<project-name>/__init__.py
. - Для
Description
, введитеwheel file based on <project-name>/src
(заменив<project-name>
имя проекта) и нажмите клавишуEnter
. Это соответствует значениюdescription
, определенному в файле шаблонаsetup.py
. - Для
Author
нажмитеEnter
. Это значение по умолчанию соответствует автору, определенному в файле шаблонаsetup.py
. - Для
License
нажмитеEnter
. В шаблоне нет лицензии. - Для
Compatible Python versions
введите версию Python, которая соответствует версии на целевых кластерах Azure Databricks (например,^3.10
), и нажмитеEnter
. - Для ввода
Would you like to define your main dependencies interactively?
нажмитеno
и клавишуEnter
. Позже вы определите зависимости. - Для
Would you like to define your development dependencies interactively?
введитеno
и нажмите клавишуEnter
. Позже вы определите зависимости. - Нажмите
Do you confirm generation?
Enter
.
- Для
После того как вы завершите выполнение запросов, Poetry добавит файл
pyproject.toml
в проект связки. Сведения о файлеpyproject.toml
см. в разделе pyproject.toml.В корневом каталоге пакета укажите
poetry
для чтенияpyproject.toml
файла, разрешить и установить зависимости, создать файлpoetry.lock
для блокировки зависимостей и, наконец, создать виртуальную среду. Для этого выполните следующую команду:poetry install
Добавьте следующий раздел в конце
pyproject.toml
файла, заменив<project-name>
имя каталога, содержащегоsrc/<project-name>/main.py
файл (например,my_project
):[tool.poetry.scripts] main = "<project-name>.main:main"
В этом разделе указывается точка входа колеса Python для задания колеса Python.
На верхнем уровне файла пакета
databricks.yml
добавьте следующее сопоставление:artifacts: default: type: whl build: poetry build path: .
Это сопоставление указывает интерфейсу командной строки Databricks использовать поэзию для создания файла колес Python.
setup.py
Удалите иrequirements-dev.txt
файлы из пакета, так как поэзия не нуждается в них.
Шаг 5. Проверка файла конфигурации пакета проекта
На этом шаге проверяется, действительна ли конфигурация пакета.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle validate
команды следующим образом:databricks bundle validate
Если возвращается сводка конфигурации пакета, проверка выполнена успешно. Если возвращаются какие-либо ошибки, исправьте ошибки и повторите этот шаг.
При внесении изменений в пакет после этого шага необходимо повторить этот шаг, чтобы проверить, действительна ли конфигурация пакета.
Шаг 6. Создание файла колеса Python и развертывание локального проекта в удаленной рабочей области
На этом шаге вы создадите файл колеса Python, разверните созданный файл колеса Python в удаленной рабочей области Azure Databricks и создадите задание Azure Databricks в рабочей области.
Если вы используете
setuptools
, установитеwheel
иsetuptools
пакеты, если это еще не сделано, выполнив следующую команду:pip3 install --upgrade wheel setuptools
В терминале Visual Studio Code используйте интерфейс командной строки Databricks, чтобы выполнить
bundle deploy
команду следующим образом:databricks bundle deploy -t dev
Если вы хотите проверить, был ли развернут локально созданный файл колеса Python:
- На боковой панели рабочей области Azure Databricks щелкните "Рабочая область".
- Щелкните в следующую папку: Рабочая область > Пользователи >
<your-username>
> .bundle ><project-name>
> dev > артефакты > .internal><random-guid>
.
Файл колеса Python должен находиться в этой папке.
Если вы хотите проверить, создано ли задание:
- На боковой панели рабочей области Azure Databricks щелкните "Рабочие процессы".
- На вкладке "Задания " щелкните [dev
<your-username>
]<project-name>
_job. - Перейдите на вкладку "Задачи ".
Должна быть одна задача: main_task.
При внесении изменений в пакет после этого шага необходимо повторить шаги 5-6, чтобы проверить, действительна ли конфигурация пакета, а затем повторно разверните проект.
Шаг 7. Запуск развернутого проекта
На этом шаге вы запустите задание Azure Databricks в рабочей области.
В корневом каталоге используйте интерфейс командной строки Databricks для выполнения
bundle run
команды, как показано ниже, заменив<project-name>
имя проекта на шаге 2.databricks bundle run -t dev <project-name>_job
Скопируйте значение, которое отображается в терминале и вставьте это значение
Run URL
в веб-браузер, чтобы открыть рабочую область Azure Databricks.В рабочей области Azure Databricks после успешного завершения задачи и появления зеленой строки заголовка щелкните задачу main_task, чтобы просмотреть результаты.
При внесении изменений в пакет после этого шага необходимо повторить шаги 5-7, чтобы проверить, действительна ли конфигурация пакета, повторно разверните проект и запустите повторно развернутый проект.
Вы достигли конца шагов по созданию пакета с помощью шаблона.
Создание пакета вручную
На этих этапах вы создадите пакет с самого начала вручную. В этом руководстве описано, как создать пакет, состоящий из файлов для сборки в файл колеса Python, и определение задания Databricks для создания этого файла колеса Python. Затем вы проверяете, развертываете и компилируете развернутые файлы в файл формата Python wheel из задания Python wheel в рабочей области Databricks.
Эти действия включают добавление содержимого в файл YAML. При необходимости может потребоваться использовать интегрированную среду разработки (IDE), которая предоставляет автоматические предложения схемы и действия при работе с файлами YAML. Следующие действия используют Visual Studio Code с расширением YAML , установленным из Visual Studio Code Marketplace.
В следующих шагах предполагается, что вы уже знаете:
- Создание, сборка и работа с wheel-файлами Python с помощью Poetry или
setuptools
. Для поэзии см. Основные сведения об использовании. Дополнительныеsetuptools
сведения см. в руководстве пользователя по упаковке Python. - Как использовать файлы колес Python в рамках задания Azure Databricks. См. использование файла wheel Python в задании Azure Databricks.
Следуйте этим инструкциям, чтобы создать пример пакета, который собирает wheel-файл Python с помощью Poetry или setuptools
, развернуть этот wheel-файл и затем запустить его.
Если вы уже создали wheel-файл Python и хотите просто развернуть и запустить его, перейдите сразу к указанию параметров wheel-файла Python в файле конфигурации пакета на шаге 3: Создайте файл конфигурации пакета.
Шаг 1. Настройка аутентификации
На этом шаге вы настроили проверку подлинности между интерфейсом командной строки Databricks на компьютере разработки и рабочей областью Azure Databricks. В этой статье предполагается, что вы хотите использовать аутентификацию OAuth пользователь-машина (U2M) и соответствующий профиль конфигурации Azure Databricks с именем DEFAULT
для аутентификации.
Примечание.
Проверка подлинности U2M подходит для выполнения этих действий в режиме реального времени. Для полностью автоматизированных рабочих процессов Databricks рекомендует использовать аутентификацию OAuth между машинами (M2M). Инструкции по настройке проверки подлинности M2M см. в разделе "Проверка подлинности".
Используйте интерфейс командной строки Databricks для локального запуска управления токенами OAuth, выполнив следующую команду для каждой целевой рабочей области.
В следующей команде замените
<workspace-url>
на URL-адрес рабочей области Azure Databricks, например, наhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Интерфейс командной строки Databricks предлагает сохранить сведения, введенные в качестве профиля конфигурации Azure Databricks. Нажмите,
Enter
чтобы принять предлагаемое имя профиля, или введите имя нового или существующего профиля. Любой существующий профиль с тем же именем перезаписывается с введенными сведениями. Профили можно использовать для быстрого переключения контекста проверки подлинности в нескольких рабочих областях.Чтобы получить список существующих профилей, в отдельном терминале или командной строке используйте интерфейс командной строки Databricks для выполнения команды
databricks auth profiles
. Чтобы просмотреть существующие параметры конкретного профиля, выполните командуdatabricks auth env --profile <profile-name>
.В веб-браузере выполните инструкции на экране, чтобы войти в рабочую область Azure Databricks.
Чтобы просмотреть текущее значение маркера OAuth профиля и метку времени окончания срока действия маркера, выполните одну из следующих команд:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Если у вас есть несколько профилей с одинаковым значением
--host
, может потребоваться указать опции--host
и-p
вместе, чтобы Databricks CLI мог найти правильную информацию о соответствующем маркере OAuth.
Шаг 2. Создание пакета
Пакет содержит артефакты, которые требуется развернуть, и параметры рабочих процессов, которые требуется запустить.
В корневом каталоге пакета создайте следующие папки и файлы в зависимости от того, используется ли поэзия или
setuptools
для создания файлов колес Python:Поэзия
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.toml
Setuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.py
Оставьте файл пустым
__init__.py
.Добавьте следующий код в
main.py
файл и сохраните файл:from my_package.my_module import * def main(): first = 200 second = 400 print(f"{first} + {second} = {add_two_numbers(first, second)}") print(f"{second} - {first} = {subtract_two_numbers(second, first)}") print(f"{first} * {second} = {multiply_two_numbers(first, second)}") print(f"{second} / {first} = {divide_two_numbers(second, first)}") if __name__ == "__main__": main()
Добавьте следующий код в
my_module.py
файл и сохраните файл:def add_two_numbers(a, b): return a + b def subtract_two_numbers(a, b): return a - b def multiply_two_numbers(a, b): return a * b def divide_two_numbers(a, b): return a / b
Добавьте следующий код в
pyproject.toml
файл илиsetup.py
файл, а затем сохраните файл:Pyproject.toml
[tool.poetry] name = "my_package" version = "0.0.1" description = "<my-package-description>" authors = ["my-author-name <my-author-name>@<my-organization>"] [tool.poetry.dependencies] python = "^3.10" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] main = "my_package.main:main"
- Замените
my-author-name
основным именем контакта вашей организации. - Замените
my-author-name>@<my-organization
основным контактным адресом электронной почты вашей организации. - Замените
<my-package-description>
отображаемым описанием файла колеса Python.
Setup.py
from setuptools import setup, find_packages import src setup( name = "my_package", version = "0.0.1", author = "<my-author-name>", url = "https://<my-url>", author_email = "<my-author-name>@<my-organization>", description = "<my-package-description>", packages=find_packages(where='./src'), package_dir={'': 'src'}, entry_points={ "packages": [ "main=my_package.main:main" ] }, install_requires=[ "setuptools" ] )
- Замените
https://<my-url>
на URL-адрес вашей организации. - Замените
<my-author-name>
основным именем контакта вашей организации. - Замените
<my-author-name>@<my-organization>
основным контактным адресом электронной почты вашей организации. - Замените
<my-package-description>
на описательное название для вашего файла с расширением .whl Python.
- Замените
Шаг 3. Создание файла конфигурации пакета
Файл конфигурации пакета описывает артефакты, которые требуется развернуть, и рабочие процессы, которые требуется запустить.
В корневом каталоге пакета добавьте файл конфигурации пакета с именем
databricks.yml
. Добавьте следующий код в этот файл:Поэзия
Примечание.
Если вы уже создали wheel-файл Python и хотите его задеплоить, измените следующий файл конфигурации пакета, исключив
artifacts
сопоставление. Затем интерфейс командной строки Databricks предполагает, что файл колесика Python уже создан и автоматически развертывает файлы, указанные вlibraries
записях массиваwhl
.bundle: name: my-wheel-bundle artifacts: default: type: whl build: poetry build path: . resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>
Setuptools
bundle: name: my-wheel-bundle resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>
Замените
<workspace-url>
на ваш URL для каждого рабочего пространства, напримерhttps://adb-1234567890123456.7.azuredatabricks.net
.Сопоставление
artifacts
требуется для создания wheel-файлов Python с помощью Poetry и является необязательным для сборки wheel-файлов Python сsetuptools
. Сопоставлениеartifacts
содержит одно или несколько определений артефактов со следующими сопоставлениями:- Сопоставление
type
должно присутствовать и быть установлено вwhl
, чтобы указать, что файл Python wheel должен быть создан. Дляsetuptools
значение по умолчанию — этоwhl
, если определения артефактов не указаны. - Сопоставление
path
указывает путь к файлуpyproject.toml
для Poetry или к файлуsetup.py
дляsetuptools
. Этот путь относительноdatabricks.yml
файла. Дляsetuptools
этот путь по умолчанию расположен в.
(в том же каталоге, что и файлdatabricks.yml
). - Сопоставление
build
указывает на любые пользовательские команды сборки, выполняемые для сборки файла колеса Python. Дляsetuptools
эта команда используется по умолчаниюpython3 setup.py bdist wheel
. - Сопоставление
files
состоит из одного или несколькихsource
сопоставлений, которые указывают дополнительные файлы для включения в сборку колеса Python. Значение по умолчанию отсутствует.
Примечание.
Если вы хотите установить файл wheel Python в целевом кластере с установленным Databricks Runtime 12.2 LTS или ниже, необходимо добавить следующее сопоставление верхнего уровня в файл
databricks.yml
.# Applies to jobs with python_wheel_task and that use # clusters with Databricks Runtime 13.0 or below installed. experimental: python_wheel_wrapper: true
Это сопоставление указывает интерфейсу командной строки Databricks выполнить следующие действия:
Развертывает копию файла колеса Python в фоновом режиме. Обычно это путь
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
развертывания.Создает записную книжку в фоновом режиме, содержащую инструкции по установке предыдущего развернутого файла колеса Python в целевом кластере. Путь этой записной книжки обычно
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
.При запуске процесса, содержащего задачу с wheel-файлом Python, и если эта задача ссылается на предыдущий wheel-файл Python, в фоновом режиме создаётся процесс, который выполняет предыдущую записную книжку.
Вам не нужно указывать это сопоставление для целевых кластеров с установленной средой выполнения Databricks 13.1 или более поздней версии, так как пакеты wheel Python из файловой системы рабочей области Azure Databricks будут автоматически устанавливаться в этих целевых кластерах.
- Сопоставление
Если вы используете поэзию, сделайте следующее:
-
Установите поэзию, версию 1.6 или более поздней, если она еще не установлена. Чтобы проверить установленную версию поэзии, выполните команду
poetry -V
илиpoetry --version
. - Убедитесь, что установлен Python версии 3.10 или более поздней. Чтобы проверить версию Python, выполните команду
python -V
илиpython --version
. - Убедитесь, что у вас есть Интерфейс командной строки Databricks версии 0.209.0 или более поздней. В вашей версии интерфейса командной строки Databricks выполните команду
databricks -v
илиdatabricks --version
. См. статью "Установка или обновление интерфейса командной строки Databricks".
-
Установите поэзию, версию 1.6 или более поздней, если она еще не установлена. Чтобы проверить установленную версию поэзии, выполните команду
Если вы используете
setuptools
, установитеwheel
пакеты иsetuptools
пакеты, если они еще не установлены, выполнив следующую команду:pip3 install --upgrade wheel setuptools
Если вы планируете сохранить этот пакет с поставщиком Git, добавьте
.gitignore
файл в корневой каталог проекта и добавьте в этот файл следующие записи:Поэзия
.databricks dist
Setuptools
.databricks build dist src/my_package/my_package.egg-info
Шаг 4. Проверка файла конфигурации пакета проекта
На этом шаге проверяется, действительна ли конфигурация пакета.
В корневом каталоге проверьте файл конфигурации пакета:
databricks bundle validate
Если возвращается сводка конфигурации пакета, проверка выполнена успешно. Если возвращаются какие-либо ошибки, исправьте ошибки и повторите этот шаг.
При внесении изменений в пакет после этого шага необходимо повторить этот шаг, чтобы проверить, действительна ли конфигурация пакета.
Шаг 5. Создание файла колеса Python и развертывание локального проекта в удаленной рабочей области
Создайте файл колесика Python локально, разверните созданный файл колеса Python в рабочей области, разверните записную книжку в рабочей области и создайте задание в рабочей области:
databricks bundle deploy -t dev
Шаг 6. Запуск развернутого проекта
Запустите развернутую работу, которая использует развернутую записную книжку для вызова развернутого файла колеса Python:
databricks bundle run -t dev wheel-job
В выходных данных скопируйте
Run URL
и вставьте его в адресную строку веб-браузера.На странице Вывод выполнения задания отображаются следующие результаты:
200 + 400 = 600 400 - 200 = 200 200 * 400 = 80000 400 / 200 = 2.0
При внесении изменений в пакет после этого шага необходимо повторить шаги 3-5, чтобы проверить, действительна ли конфигурация пакета, повторно разверните проект и запустите повторно развернутый проект.
Создание и установка файла колеса Python для задания
Чтобы создать файл колеса Python с помощью Poetry или setuptools
, а затем использовать этот файл колеса Python в задаче, необходимо добавить в файл databricks.yml
одно или два сопоставления.
Если вы используете Poetry, необходимо включить следующее сопоставление artifacts
в файл databricks.yml
. Это сопоставление выполняет poetry build
команду и использует pyproject.toml
файл, который находится в том же каталоге, что databricks.yml
и файл:
artifacts:
default:
type: whl
build: poetry build
path: .
Примечание.
Сопоставление artifacts
является необязательным для setuptools
. По умолчанию для интерфейса командной строки Databricks выполняется команда python3 setup.py bdist_wheel
и используется файл setup.py
, который находится в том же каталоге, что и файл databricks.yml
. Интерфейс командной строки Databricks предполагает, что вы уже выполнили команду, например pip3 install --upgrade wheel setuptools
установить wheel
и setuptools
пакеты, если они еще не установлены.
Кроме того, сопоставление задачи задания libraries
должно содержать whl
значение, указывающее путь к созданному wheel-файлу Python относительно файла конфигурации, в котором это указано. В следующем примере показано это в задаче блокнота (многоточие указывает, что содержимое опущено для краткости):
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-job-notebook-task
notebook_task:
notebook_path: ./my_notebook.py
libraries:
- whl: ./dist/*.whl
new_cluster:
# ...
Создание и установка файла колеса Python для конвейера
Чтобы создать файл колесика Python с помощью поэзии или setuptools
, а затем сослаться на этот файл колеса Python в конвейере DLT, необходимо добавить сопоставление в файл databricks.yml
, если используется поэзия, и необходимо добавить команду %pip install
в записную книжку конвейера, как показано ниже.
Если вы используете Poetry, вы должны включить следующее сопоставление artifacts
в файл databricks.yml
. Это сопоставление выполняет команду poetry build
и использует файл pyproject.toml
, который находится в том же каталоге, что и файл databricks.yml
.
artifacts:
default:
type: whl
build: poetry build
path: .
Примечание.
Сопоставление artifacts
является необязательным для setuptools
. По умолчанию интерфейс командной строки Databricks выполняет команду python3 setup.py bdist_wheel
и использует файл setup.py
, который находится в том же каталоге, что и файл databricks.yml
. Интерфейс командной строки Databricks предполагает, что вы уже выполнили команду, например pip3 install --upgrade wheel setuptools
установить wheel
и setuptools
пакеты, если они еще не установлены.
Кроме того, связанная записная книжка конвейера должна содержать команду %pip install
для установки созданного wheel-файла Python. См. библиотеки Python.