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
nosync
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
Para obter um exemplo que compila e implanta o JAR, consulte Bundle que carrega um arquivo JAR para o Catálogo do Unity.
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 depip
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*