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


Зависимости библиотеки пакетов ресурсов 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 в определение задачи задания, укажите librariesmaven сопоставление для каждого установленного пакета 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*