通过Azure DevOps CI/CD推送Azure Repo中Python文件至Databricks Workspace的问题
解决Azure DevOps CI/CD推送Python文件到Databricks时自动转笔记本的问题
核心原因
Databricks默认会将通过workspace import上传的.py文件解析转换为笔记本格式,要保留纯Python文件形态,必须明确指定导入格式参数。
具体解决方法
1. 调整Databricks CLI命令参数
使用workspace import命令时添加--format source参数,强制以纯源代码格式导入:
databricks workspace import --format source --overwrite $(Build.SourcesDirectory)/your_script.py /Workspace/your-target-folder/your_script.py
--format source:告知Databricks按纯Python文件处理,不转换为笔记本结构--overwrite:覆盖目标路径已存在的同名文件$(Build.SourcesDirectory):Azure DevOps Pipeline中代表代码仓库的本地根路径
2. 直接上传到DBFS(可选方案)
如果需要先将文件存放在DBFS再同步到Workspace,用fs cp命令完成上传:
databricks fs cp --overwrite $(Build.SourcesDirectory)/your_script.py dbfs:/FileStore/scripts/your_script.py
之后可通过以下命令将DBFS中的文件导入为Workspace内的纯Python文件:
databricks workspace import --format source --overwrite dbfs:/FileStore/scripts/your_script.py /Workspace/your-target-folder/your_script.py
3. Azure DevOps Pipeline配置要点
- 确保Pipeline代理已安装Databricks CLI,若未安装可添加任务执行:
pip install databricks-cli - 配置Databricks认证:通过环境变量
DATABRICKS_HOST传入Workspace地址,DATABRICKS_TOKEN传入认证令牌 - 添加Bash/PowerShell任务执行上述导入命令
注意事项
- 目标Workspace路径需为普通文件夹,若使用Repos目录,建议直接通过Git同步而非手动上传
- 确认本地文件扩展名是
.py,未被误改为.ipynb - 升级Databricks CLI到最新版本,确保支持
--format source参数
内容的提问来源于stack exchange,提问作者Sheikh Mubashir
相关产品推荐
相关产品推荐

