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 Python biblioteca.

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:

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.

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:

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.

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:

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:

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