Databricks 工作区转换问题:Python 文件在合并时自动转换为笔记本

问题描述 投票:0回答:1

我有一个笔记本,它利用 Python 文件导入一些字典。 Notebook 和 .py 文件都驻留在开发工作区的存储库中。但是,将这些文件合并到工作区后,.py 文件会自动转换为 Databricks 笔记本,而不是保留为 Python 文件。 .py 文件仅包含字典。

为了解决此问题,我在工作区中手动创建了一个全局 _dicts.py 文件,以确保我的脚本正常运行。例如,我在存储库中创建了一个 test.py 文件并将其合并到 master 分支中。我们使用 Azure DevOps 作为 CI/CD 管道,成功构建后,文件将合并到工作区中。但是,部署到工作区中的 .py 文件正在更改为 Databricks 笔记本。

 from global_dicts import _transactionTypes from global_dicts import _methods from global_dicts import _statuses from global_dicts import _resources from global_dicts import _endDeviceType from global_dicts import _readingQuality

我尝试手动编辑文件,它起作用了,我还看到了一篇解释如何修复的文章 - 我附上了下面的链接 -。然而,它并没有帮助我实现我想要的目标。

https://docs.databricks.com/en/files/workspace.html#:~:text=To%20enable%20or%20re-enable%20support%20for%20non-notebook%20files,non-notebook%20files %20 已为 %20 您的 %20 工作空间启用 %20 %20

azure-devops azure-databricks databricks-repos
1个回答
0
投票

我也可以使用

databricks CLI
重现该问题。

databricks workspace import /Shared/TestFile-LocalZip.py --file TestFile-Local.zip --format SOURCE
databricks workspace import /Shared/TestFile-LocalPython.py --file TestFile-Local.py --language PYTHON

根据文档,这更有可能是Azure Databricks

限制
,而不是
Azure DevOps
引起的问题。

由于它说无服务器计算对工作区文件操作的支持有限,我在My Personal Compute Cluster

的帮助下找到了一种解决方法,我可以在其中运行
curl
命令将文件从Azure存储帐户复制到Azure Databricks 工作区作为 
File 而不是 Notebook
。这是我的步骤。

将我的

.py

 文件上传到 Azure 存储帐户 blob 并生成 
Blob SAS URL

连接到

My Personal Compute Cluster

 -> 在 
Terminal
 中运行 
curl
 命令;

BlobSASURL="https://xxxxxxxx.blob.core.windows.net/testcontainer/TestFile-Storage.py?xxxxxxxxx" curl "$BlobSASURL" -o /Workspace/Shared/TestFile-Storage.py

© www.soinside.com 2019 - 2024. All rights reserved.