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 nosync
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ãopip
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*