使用适用于 Visual Studio Code 的 Databricks 扩展通过 Databricks Connect 运行和调试笔记本单元格。
重要
本文档适用于 Visual Studio Code 的 Databricks 扩展版本 2(公共预览版)。
可以使用适用于 Visual Studio Code 的 Databricks 扩展通过 Databricks Connect 集成运行和调试笔记本,一次运行一个单元格或一次运行所有单元格均可,并在 Visual Studio Code UI 中查看其结果。 所有代码都在本地运行,而涉及 DataFrame 操作的代码在远程 Azure Databricks 工作区中的群集上运行,运行响应发送回给本地调用方。 所有代码均在本地调试,而所有 Spark 代码则继续在远程 Azure Databricks 工作区中的群集上运行。 无法直接从客户端对核心 Spark 引擎代码进行调试。
注意
此功能适用于 Databricks Runtime 13.3 及更高版本。
若要在适用于 Visual Studio Code 的 Databricks 扩展中对笔记本启用 Databricks Connect 集成,必须在适用于 Visual Studio Code 的 Databricks 扩展中安装 Databricks Connect。 请参阅使用 Databricks Connect 为适用于 Visual Studio Code 的 Databricks 扩展调试代码。
运行 Python 笔记本单元格
对于文件名中以 .py
为扩展名的笔记本,当在 Visual Studio Code IDE 中打开该笔记本时,每个单元格都会显示“运行单元格”、“运行以上”和“调试单元格”按钮。 运行某个单元格时,其结果显示在 IDE 的单独选项卡中。 调试时,正在接受调试的单元格将显示“继续”、“停止”和“逐过程执行”按钮。 调试单元格时,可以使用 Visual Studio Code 调试功能,例如监视变量的状态以及查看调用堆栈和调试控制台。
对于文件名中以 .ipynb
为扩展名的笔记本,当在 Visual Studio Code IDE 中打开该笔记本时,笔记本及其单元格将包含其他功能。 请参阅运行单元格和在笔记本编辑器中使用代码单元格。
有关文件名中以 .py
和 .ipynb
为扩展名的笔记本格式的详细信息,请参阅导出和导入 Databricks 笔记本。
运行 Python Jupyter Noteboook 单元格
若要运行或调试 Python Jupyter Notebook (.ipynb
),请执行以下操作:
在项目中,打开要运行或调试的 Python Jupyter Notebook。 确保 Python 文件采用 Jupyter Notebook 格式并且扩展名为
.ipynb
。提示
可以通过在“命令面板”中运行>“创建: 新建 Jupyter Notebook”命令来创建新的 Python Jupyter Notebook。
单击“运行所有单元格”以运行所有单元格但不调试、单击“执行单元格”以运行单个对应的单元格但不调试,或单击“逐行运行”以逐行运行单个单元格并进行有限的调试,变量值显示在“Jupyter”面板中(“视图”>“打开视图”>“Jupyter”)。
要在单个单元格内进行全面调试,请设置断点,然后在该单元格的“运行”按钮旁边的菜单中单击“调试单元格”。
单击其中的任一选项后,系统可能会提示你安装缺少的 Python Jupyter Notebook 包依赖项。 单击以进行安装。
有关详细信息,请参阅 VS Code 中的 Jupyter Notebook。
笔记本 globals
此外,以下笔记本 globals 已启用:
spark
,表示databricks.connect.DatabricksSession
的实例,预配置为实例化DatabricksSession
,方法是从扩展获取 Azure Databricks 身份验证凭据。 如果笔记本单元格的代码中已实例化DatabricksSession
,则会改用此DatabricksSession
设置。 请参阅适用于 Python 的 Databricks Connect 的代码示例。udf
,预配置为pyspark.sql.functions.udf
的别名,它是 Python UDF 的别名。 请参阅 pyspark.sql.functions.udf。sql
,预配置为spark.sql
的别名。spark
,如前所述,表示databricks.connect.DatabricksSession
的预配置实例。 请参阅 Spark SQL。dbutils
,预配置为 Databricks 实用工具的实例,该实例从databricks-sdk
中导入,并通过从扩展获取 Azure Databricks 身份验证凭据进行实例化。 请参阅使用 Databricks 实用工具。注意
使用 Databricks Connect 的笔记本仅支持一部分 Databricks 实用工具。
若要启用
dbutils.widgets
,必须先在本地开发计算机的终端中运行以下命令来安装用于 Python 的 Databricks SDK:pip install 'databricks-sdk[notebook]'
display
,预配置为 Jupyter 内置IPython.display.display
的别名。 请参阅 IPython.display.display。displayHTML
,预配置为dbruntime.display.displayHTML
的别名,它是ipython
中display.HTML
的别名。 请参阅 IPython.display.html。
笔记本 magic
此外,以下笔记本 magic 已启用:
%fs
,这与进行dbutils.fs
调用相同。 请参阅混合语言。%sh
,它在本地计算机上使用单元格 magic%%script
运行命令。 这不会在远程 Azure Databricks 工作区中运行该命令。 请参阅混合语言。%md
和%md-sandbox
,用于运行单元格 magic%%markdown
。 请参阅混合语言。%sql
,它运行spark.sql
。 请参阅混合语言。%pip
,它在本地计算机上运行pip install
。 这不会在远程 Azure Databricks 工作区中运行pip install
。 请参阅使用 %pip 命令管理库。%run
,运行另一个笔记本。 请参阅从一个 Databricks 笔记本运行另一个笔记本。
已启用的其他功能包括:
- Spark 数据帧将转换为 pandas 数据帧,它们以 Jupyter 表格式显示。
限制
在 Visual Studio Code 的笔记本中运行单元格的限制包括:
- 不支持笔记本 magic
%r
和%scala
,如果调用,会显示错误。 请参阅混合语言。 - 笔记本 magic
%sql
不支持某些 DML 命令,例如“显示表”。