Partilhar via


Dependências da biblioteca Databricks Asset Bundles

Este artigo descreve a sintaxe para declarar dependências da biblioteca Databricks Asset Bundles. Os pacotes permitem o gerenciamento programático de fluxos de trabalho do Azure Databricks. Consulte O que são Databricks Asset Bundles?.

Além dos blocos de anotações, seus trabalhos do Azure Databricks provavelmente dependerão de bibliotecas para funcionarem conforme o esperado. As dependências do Databricks Asset Bundles para desenvolvimento local são especificadas no requirements*.txt arquivo na raiz do projeto do pacote, mas as dependências da biblioteca de tarefas de trabalho são declaradas nos arquivos de configuração do pacote e geralmente são necessárias como parte da especificação do tipo de tarefa de trabalho.

Os pacotes fornecem suporte para as seguintes dependências de biblioteca para trabalhos do Azure Databricks:

  • Arquivo de roda Python
  • Arquivo JAR (Java ou Scala)
  • Pacotes PyPI, Maven ou CRAN

Nota

O suporte ou não para uma biblioteca depende da configuração do cluster para o trabalho e da origem da biblioteca. Para obter informações completas sobre o suporte da biblioteca, consulte Bibliotecas.

Arquivo de roda Python

Para adicionar um arquivo de roda Python a uma tarefa de trabalho, especifique libraries um whl mapeamento para cada biblioteca a ser instalada. Você pode instalar um arquivo de roda a partir de arquivos de espaço de trabalho, volumes do Catálogo Unity, armazenamento de objetos na nuvem ou um caminho de arquivo local.

Importante

As bibliotecas podem ser instaladas a partir do DBFS ao usar o Databricks Runtime 14.3 LTS e inferior. No entanto, qualquer usuário do espaço de trabalho pode modificar arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas em um espaço de trabalho do Azure Databricks, o armazenamento de arquivos de biblioteca na raiz DBFS é preterido e desabilitado por padrão no Databricks Runtime 15.1 e superior. Consulte O armazenamento de bibliotecas na raiz DBFS foi preterido e desativado por padrão.

Em vez disso, o Databricks recomenda carregar todas as bibliotecas, incluindo bibliotecas Python, arquivos JAR e conectores Spark, para arquivos de espaço de trabalho ou volumes do Catálogo Unity, ou usar repositórios de pacotes de biblioteca. Se sua carga de trabalho não oferecer suporte a esses padrões, você também poderá usar bibliotecas armazenadas no armazenamento de objetos na nuvem.

O exemplo a seguir mostra como instalar três arquivos de roda Python para uma tarefa de trabalho.

  • O primeiro arquivo de roda Python foi carregado anteriormente no espaço de trabalho do Azure Databricks ou adicionado como um include item no sync mapeamento e está na mesma pasta local que o arquivo de configuração do pacote.
  • O segundo arquivo de roda Python está no local dos arquivos de espaço de trabalho especificados no espaço de trabalho do Azure Databricks.
  • O terceiro arquivo de roda Python foi carregado anteriormente no volume nomeado my-volume no espaço de trabalho do 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

Arquivo JAR

Para adicionar um arquivo JAR a uma tarefa de trabalho, especifique libraries um jar mapeamento para cada biblioteca a ser instalada. Você pode instalar um JAR a partir de arquivos de espaço de trabalho, volumes do Unity Catalog, armazenamento de objetos na nuvem ou um caminho de arquivo local.

Importante

As bibliotecas podem ser instaladas a partir do DBFS ao usar o Databricks Runtime 14.3 LTS e inferior. No entanto, qualquer usuário do espaço de trabalho pode modificar arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas em um espaço de trabalho do Azure Databricks, o armazenamento de arquivos de biblioteca na raiz DBFS é preterido e desabilitado por padrão no Databricks Runtime 15.1 e superior. Consulte O armazenamento de bibliotecas na raiz DBFS foi preterido e desativado por padrão.

Em vez disso, o Databricks recomenda carregar todas as bibliotecas, incluindo bibliotecas Python, arquivos JAR e conectores Spark, para arquivos de espaço de trabalho ou volumes do Catálogo Unity, ou usar repositórios de pacotes de biblioteca. Se sua carga de trabalho não oferecer suporte a esses padrões, você também poderá usar bibliotecas armazenadas no armazenamento de objetos na nuvem.

O exemplo a seguir mostra como instalar um arquivo JAR que foi carregado anteriormente no volume nomeado my-volume no espaço de trabalho do Azure Databricks.

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar

Pacote PyPI

Para adicionar um pacote PyPI a uma definição de tarefa de trabalho, em libraries, especifique um pypi mapeamento para cada pacote PyPI a ser instalado. Para cada mapeamento, especifique o seguinte:

  • Para package, especifique o nome do pacote PyPI a ser instalado. Uma especificação de versão exata opcional também é suportada.
  • Opcionalmente, para repo, especifique o repositório onde o pacote PyPI pode ser encontrado. Se não for especificado, o índice padrão pip será usado (https://pypi.org/simple/).

O exemplo a seguir mostra como instalar dois pacotes PyPI.

  • O primeiro pacote PyPI usa a versão do pacote especificada e o índice padrão pip .
  • O segundo pacote PyPI usa a versão do pacote especificada e o índice explicitamente especificado 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/

Pacote Maven

Para adicionar um pacote Maven a uma definição de tarefa de trabalho, em libraries, especifique um maven mapeamento para cada pacote Maven a ser instalado. Para cada mapeamento, especifique o seguinte:

  • Para coordinates, especifique as coordenadas Maven no estilo Gradle para o pacote.
  • Opcionalmente, para repo, especifique o repositório Maven a partir do qual instalar o pacote Maven. Se omitido, o Repositório Central do Maven e o Repositório de Pacotes do Spark serão pesquisados.
  • Opcionalmente, para exclusions, especifique quaisquer dependências a serem excluídas explicitamente. Consulte Exclusões de dependência do Maven.

O exemplo a seguir mostra como instalar dois pacotes Maven.

  • O primeiro pacote Maven usa as coordenadas de pacote especificadas e procura esse pacote no Maven Central Repository e no Spark Packages Repository.
  • O segundo pacote Maven usa as coordenadas de pacote especificadas, procura esse pacote somente no Maven Central Repository e não inclui nenhuma das dependências deste pacote que correspondam ao padrão especificado.
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*