我正在使用 databricks-connect 和 VS Code 为 Databricks 开发一些 python 代码。
我想使用 databricks-connect 直接从 VS Code 编写代码并运行/测试所有内容,以避免处理 Databricks web IDE。对于基本笔记本,它工作得很好,但我想对多个笔记本做同样的事情并使用导入(例如,在另一个笔记本中使用 import config-notebook
)。
但是,在 VS Code 中,import another-notebook
工作正常,但在 Databricks 中不起作用。
据我所知,Databricks 中的替代方法是 %run "another-notebook"
但如果我想从 VS Code 运行它(databricks-connect 不包括笔记本工作流),它就不起作用。
有没有什么方法可以使笔记本导入既可以在 Databricks 中运行,又可以由 databricks-connect 支持?
非常感谢您的回答!
最佳答案
我找到了一个解决方案,它用 try ... except
完成@Kashyap 提到的部分。
包含 %run
命令的笔记本的 python 文件应该如下所示:
# Databricks notebook source
# MAGIC %run "another-notebook"
# COMMAND ----------
try:
import another-notebook
except ModuleNotFoundError:
print("running on Databricks")
import standard-python-lib
# Some very interesting code
# MAGIC %run
避免在 Python 中执行时出现 SyntaxError
并告诉 Databricks 它是 Python 笔记本中的 Magic 命令。
这样,无论脚本是通过 databricks-connect 在 Python 中执行还是在 Databricks 中执行,它都会起作用。
关于python - 在 Databricks 中导入笔记本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69633404/