Pular para o conteúdo principal

Use um artefato particular em um pacote

Arquivos e artefatos armazenados em ferramentas de terceiros, como o JFrog Artifactory, ou em repositórios privados podem precisar fazer parte de seus Databricks ativo Bundles. Este artigo descreve como lidar com esses arquivos. Para obter informações sobre Databricks ativo Bundles, consulte O que são Databricks ativo Bundles?

Para obter um exemplo de pacote que usa uma roda privada, consulte o repositório bundle-examples do GitHub.

dica

Se estiver usando o Notebook, o senhor pode instalar as rodas Python de um repositório privado em um Notebook e, em seguida, adicionar um notebook_task ao Job em seu pacote. NotebookConsulte -scoped Pythonbiblioteca.

Faça o download do artefato localmente

Para gerenciar um artefato privado usando Databricks ativo Bundles, primeiro o senhor precisa download localmente. Em seguida, o senhor pode fazer referência a ele em seu pacote e implantá-lo no workspace como parte do pacote, ou pode upload para Unity Catalog e fazer referência a ele em seu pacote.

Por exemplo, o comando a seguir downloads um arquivo Python wheel no diretório dist:

Shell
pip download -d dist my-wheel==1.0

O senhor também pode download um pacote PyPI privado e, em seguida, copiá-lo para o diretório dist.

Bash
export PYPI_TOKEN=<YOUR TOKEN>
pip download -d dist my-package==1.0.0 --index-url https://$PYPI_TOKEN@<package-index-url> --no-deps

(Opcional) Faça o upload do artefato para o Unity Catalog

Depois de fazer o download do artefato, o senhor pode, opcionalmente, copiar o artefato de download para o volume Unity Catalog usando o Databricks CLI, para que ele possa ser referenciado no pacote em vez de ser carregado no workspace quando o pacote for implantado. O exemplo a seguir copia uma roda para um volume do Unity Catalog:

Bash
databricks fs cp my-wheel-1.0-*.whl dbfs:/Volumes/myorg_test/myorg_volumes/packages
dica

Databricks O ativo Bundles irá automaticamente upload todos os artefatos referenciados no bundle para Unity Catalog se o senhor definir artifact_path na configuração do bundle como um caminho de volumes Unity Catalog.

Faça referência ao artefato

Para incluir o artefato em seu pacote, faça referência a ele em sua configuração.

O exemplo de pacote a seguir faz referência a um arquivo de roda no diretório dist em um trabalho. Essa configuração carrega a roda para o site workspace quando o pacote é implantado.

YAML
resources:
jobs:
demo-job:
name: demo-job
tasks:
- task_key: python-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: Standard_D4s_v5
num_workers: 1
spark_python_task:
python_file: ../src/main.py
libraries:
- whl: ../dist/my-wheel-1.0-*.whl

Se o senhor fizer upload do artefato para um volume Unity Catalog, configure o trabalho para fazer referência a ele nesse local:

YAML
resources:
jobs:
demo-job:
name: demo-job
tasks:
- task_key: python-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: Standard_D4s_v5
num_workers: 1
spark_python_task:
python_file: ../src/main.py
libraries:
- whl: /Volumes/myorg_test/myorg_volumes/packages/my-wheel-1.0-py3-none-any.whl

Para um Python wheel, ele pode, alternativamente, ser referenciado em um python_wheel_task para um Job:

YAML
resources:
jobs:
demo-job:
name: demo-job
tasks:
- task_key: wheel_task
python_wheel_task:
package_name: my_package
entry_point: entry
job_cluster_key: Job_cluster
libraries:
- whl: ../dist/my-wheel-1.0-*.whl