在捆绑包中使用专用项目

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

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

提示

如果使用笔记本,可以从笔记本中的专用存储库安装 Python wheel,然后在捆绑包作业中添加 notebook_task。 请参阅作用域为笔记本的 Python 库

在本地下载项目

若要使用 Databricks 资产捆绑包来管理专用项目,首先需要在本地下载此捆绑包。 然后,可以在捆绑包中引用它并将其部署到工作区作为捆绑包的一部分,也可以将其上传到 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 卷路径,Databricks 资产捆绑包将自动将捆绑包中引用的所有项目上传到 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 wheel,也可以在作业的 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