存储在第三方工具(如 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