Compartilhar via


Dependências da biblioteca dos Pacotes de Ativos do Databricks

Este artigo descreve a sintaxe para declarar as dependências da biblioteca dos Pacotes de Ativos do Databricks. Os pacotes permitem o gerenciamento programático de fluxos de trabalho do Azure Databricks. Confira O que são os Pacotes de Ativos do Databricks?.

Além dos notebooks, seus trabalhos do Azure Databricks provavelmente dependerão de bibliotecas para funcionar conforme o esperado. As dependências dos Pacotes de Ativos do Databricks para desenvolvimento local são especificadas no arquivo requirements*.txt na raiz do projeto do pacote, mas as dependências da biblioteca de tarefas de trabalho são declaradas em seus 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 oferecem suporte para as seguintes dependências da biblioteca de trabalhos do Azure Databricks:

  • Arquivo wheel do Python
  • Arquivo JAR (Java ou Scala)
  • Pacotes PyPI, Maven ou CRAN

Observação

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

Arquivo wheel do Python

Para adicionar um arquivo wheel do Python a uma tarefa de trabalho, em libraries, especifique um mapeamento whl para cada biblioteca a ser instalada. Você pode instalar um arquivo wheel de arquivos do workspace, de volumes do Catálogo do Unity, de armazenamento de objetos na nuvem ou de 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. Porém, qualquer usuário do espaço de trabalho pode modificar os arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas em um workspace do Azure Databricks, o armazenamento de arquivos de biblioteca na raiz do DBFS foi preterido e desabilitado por padrão no Databricks Runtime 15.1 e em versões posteriores. Consulte O armazenamento de bibliotecas na raiz do DBFS é preterido e desabilitado por padrão.

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

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

  • O primeiro arquivo wheel do Python foi carregado anteriormente no workspace do Azure Databricks ou adicionado como um item include no sync mapeamento e está na mesma pasta local que o arquivo de configuração do pacote.
  • O segundo arquivo wheel do Python está no local de arquivos do workspace especificado no workspace do Azure Databricks.
  • O terceiro arquivo wheel do Python foi carregado anteriormente no volume nomeado my-volume no workspace 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, em libraries, especifique um mapeamento jar para cada biblioteca a ser instalada. Você pode instalar um arquivo JAR de arquivos do workspace, de volumes do Catálogo do Unity, de armazenamento de objetos na nuvem ou de 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. Porém, qualquer usuário do espaço de trabalho pode modificar os arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas em um workspace do Azure Databricks, o armazenamento de arquivos de biblioteca na raiz do DBFS foi preterido e desabilitado por padrão no Databricks Runtime 15.1 e em versões posteriores. Consulte O armazenamento de bibliotecas na raiz do DBFS é preterido e desabilitado por padrão.

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

O exemplo a seguir mostra como instalar um arquivo JAR que foi carregado anteriormente no volume nomeado my-volume no workspace 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 do trabalho, em libraries, especifique um mapeamento pypi para cada pacote PyPI a ser instalado. Para cada mapeamento, especifique o seguinte:

  • Para package, especifique o nome do pacote PyPI a ser instalado. Também há suporte para uma especificação de versão exata opcional.
  • Opcionalmente, para repo, especifique o repositório onde o pacote PyPI pode ser encontrado. Se não for especificado, o índice de pip padrão 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 especificado e o índice padrão pip.
  • O segundo pacote PyPI usa a versão do pacote especificado 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 do Maven

Para adicionar um pacote Maven a uma definição de tarefa do trabalho, em libraries, especifique um mapeamento maven 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 do qual instalar o pacote Maven. Se omitido, o Repositório Central do Maven e o Repositório de Pacotes 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 do Maven usa as coordenadas de pacote especificadas e procura por esse pacote no Repositório Central do Maven e no Repositório de Pacotes do Spark.
  • O segundo pacote do Maven usa as coordenadas de pacote especificadas, procura esse pacote somente no Repositório Central do Maven 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*