Зависимости библиотеки пакетов ресурсов Databricks
В этой статье описывается синтаксис объявления зависимостей библиотеки наборов ресурсов Databricks. Пакеты обеспечивают программное управление рабочими процессами Azure Databricks. См. раздел "Что такое пакеты ресурсов Databricks?".
В дополнение к записным книжкам задания Azure Databricks, скорее всего, зависят от библиотек, чтобы работать должным образом. Зависимости пакетов ресурсов Databricks для локальной разработки указываются в requirements*.txt
файле в корне проекта пакета, но зависимости библиотеки задач задания объявляются в файлах конфигурации пакета и часто необходимы в рамках спецификации типа задачи задания.
Пакеты обеспечивают поддержку следующих зависимостей библиотеки для заданий Azure Databricks:
- Файл колеса Python
- JAR-файл (Java или Scala)
- Пакеты PyPI, Maven или CRAN
Примечание.
Независимо от того, поддерживается ли библиотека, зависит от конфигурации кластера для задания и источника библиотеки. Полные сведения о поддержке библиотек см. в разделе "Библиотеки".
Файл колеса Python
Чтобы добавить файл колеса Python в задачу задания, укажите libraries
whl
сопоставление для каждой библиотеки, которую необходимо установить. Вы можете установить файл колесика из файлов рабочей области, томов каталога Unity, облачного хранилища объектов или локального пути к файлу.
Внимание
Библиотеки можно установить из DBFS при использовании Databricks Runtime 14.3 LTS и ниже. Однако любой пользователь рабочей области может изменять файлы библиотеки, хранящиеся в DBFS. Чтобы повысить безопасность библиотек в рабочей области Azure Databricks, хранение файлов библиотек в корне DBFS устарело и отключено по умолчанию в Databricks Runtime 15.1 и выше. См . статью "Хранение библиотек в корневом каталоге DBFS" не рекомендуется и отключается по умолчанию.
Вместо этого Databricks рекомендует отправлять все библиотеки, включая библиотеки Python, JAR-файлы и соединители Spark, в файлы рабочей области или тома каталога Unity или с помощью репозиториев пакетов библиотеки. Если рабочая нагрузка не поддерживает эти шаблоны, можно также использовать библиотеки, хранящиеся в облачном хранилище объектов.
В следующем примере показано, как установить три файла колеса Python для задачи задания.
- Первый файл колесика Python был отправлен ранее в рабочую область Azure Databricks или добавлен в качестве
include
элемента вsync
сопоставлении и находится в той же локальной папке, что и файл конфигурации пакета. - Второй файл колесика Python находится в указанном расположении файлов рабочей области в рабочей области Azure Databricks.
- Третий файл колеса Python ранее был отправлен в том с именем
my-volume
в рабочей области Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- whl: ./my-wheel-0.1.0.whl
- whl: /Workspace/Shared/Libraries/my-wheel-0.0.1-py3-none-any.whl
- whl: /Volumes/main/default/my-volume/my-wheel-0.1.0.whl
JAR-файл
Чтобы добавить JAR-файл в задачу задания, укажите libraries
jar
сопоставление для каждой библиотеки, которую необходимо установить. Вы можете установить JAR-файл из файлов рабочей области, томов каталога Unity, облачного хранилища объектов или локального пути к файлу.
Внимание
Библиотеки можно установить из DBFS при использовании Databricks Runtime 14.3 LTS и ниже. Однако любой пользователь рабочей области может изменять файлы библиотеки, хранящиеся в DBFS. Чтобы повысить безопасность библиотек в рабочей области Azure Databricks, хранение файлов библиотек в корне DBFS устарело и отключено по умолчанию в Databricks Runtime 15.1 и выше. См . статью "Хранение библиотек в корневом каталоге DBFS" не рекомендуется и отключается по умолчанию.
Вместо этого Databricks рекомендует отправлять все библиотеки, включая библиотеки Python, JAR-файлы и соединители Spark, в файлы рабочей области или тома каталога Unity или с помощью репозиториев пакетов библиотеки. Если рабочая нагрузка не поддерживает эти шаблоны, можно также использовать библиотеки, хранящиеся в облачном хранилище объектов.
В следующем примере показано, как установить JAR-файл, который ранее был отправлен в том с именем my-volume
в рабочей области Azure Databricks.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
Пакет PyPI
Чтобы добавить пакет PyPI в определение задачи задания, libraries
укажите pypi
сопоставление для каждого установленного пакета PyPI. Для каждого сопоставления укажите следующее:
- Для
package
этого укажите имя устанавливаемого пакета PyPI. Также поддерживается необязательная точная спецификация версии. repo
При необходимости укажите репозиторий, в котором находится пакет PyPI. Если не указано, используется индекс по умолчаниюpip
(https://pypi.org/simple/).
В следующем примере показано, как установить два пакета PyPI.
- Первый пакет PyPI использует указанную версию пакета и индекс по умолчанию
pip
. - Второй пакет PyPI использует указанную версию пакета и явно указанный
pip
индекс.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- pypi:
package: wheel==0.41.2
- pypi:
package: numpy==1.25.2
repo: https://pypi.org/simple/
Пакет Maven
Чтобы добавить пакет Maven в определение задачи задания, укажите libraries
maven
сопоставление для каждого установленного пакета Maven. Для каждого сопоставления укажите следующее:
- Для
coordinates
этого укажите координаты Maven в стиле Gradle для пакета. repo
При необходимости укажите репозиторий Maven для установки пакета Maven из. Если опущено, поиск выполняется как в центральном репозитории Maven, так и в репозитории пакетов Spark.exclusions
При необходимости укажите все зависимости, которые необходимо явным образом исключить. См . исключения зависимостей Maven.
В следующем примере показано, как установить два пакета Maven.
- Первый пакет Maven использует указанные координаты пакета и ищет этот пакет как в центральном репозитории Maven, так и в репозитории пакетов Spark.
- Второй пакет Maven использует указанные координаты пакета, выполняет поиск этого пакета только в центральном репозитории Maven и не включает ни одну из зависимостей этого пакета, соответствующих указанному шаблону.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- maven:
coordinates: com.databricks:databricks-sdk-java:0.8.1
- maven:
coordinates: com.databricks:databricks-dbutils-scala_2.13:0.1.4
repo: https://mvnrepository.com/
exclusions:
- org.scala-lang:scala-library:2.13.0-RC*