在捆绑包中使用专用项目

存储在第三方工具(如 JFrog Artifactory)或专用存储库中的文件和项目可能需要是声明性自动化捆绑包的一部分。 本文介绍如何处理这些文件。 有关声明性自动化捆绑包的信息,请参阅 什么是声明性自动化捆绑包?

有关使用专用滚轮的示例捆绑包,请参阅 bundle 示例GitHub存储库

提示

如果您正在使用笔记本,可以从笔记本中的私有存储库安装Python轮子,然后将notebook_task添加到您捆绑包中的作业。 请参阅 Notebook 范围内的 Python 库

在本地下载制品

若要使用声明性自动化包管理专用工件,您首先需要将其下载到本地。 然后,可以在捆绑包中引用它并将其部署到工作区作为捆绑包的一部分,也可以将其上传到 Unity Catalog 并在捆绑包中引用它。

例如,以下命令将Python wheel 文件下载到 dist 目录:

pip download -d dist my-wheel==1.0

还可以下载专用 PyPI 包,然后将其复制到 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

(可选)将项目上传到 Unity Catalog

下载工件后,可以选择使用 Databricks CLI 将下载的工件复制到 Unity Catalog 卷中,以便在捆绑包部署时,从捆绑包中引用它,而不是上传到工作区。 以下代码会将 wheel 复制到 Unity Catalog 卷:

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

提示

如果您在捆绑包配置中将 artifact_path 设置为 Unity Catalog 卷路径,则声明式自动化捆绑包会自动将捆绑包中引用的所有工件上传到 Unity Catalog。

引用工件

若要在捆绑包中包含构件,请在配置中引用该构件。

以下示例捆绑包引用了作业中 dist 目录内的一个 wheel 文件。 部署捆绑包时,此配置会将 wheel 上传到工作区。

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

如果您将工件上传到 Unity Catalog 卷,请将作业配置为从该位置引用它:

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

对于Python轮,也可以在作业的 python_wheel_task 中引用它:

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