使用适用于 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),请执行以下操作:

  1. 在项目中,打开要运行或调试的 Python Jupyter Notebook。 确保 Python 文件采用 Jupyter Notebook 格式并且扩展名为 .ipynb

    提示

    可以通过在“命令面板”中运行>“创建: 新建 Jupyter Notebook”命令来创建新的 Python Jupyter Notebook。

  2. 单击“运行所有单元格”以运行所有单元格但不调试、单击“执行单元格”以运行单个对应的单元格但不调试,或单击“逐行运行”以逐行运行单个单元格并进行有限的调试,变量值显示在“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 的别名,它是 ipythondisplay.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 笔记本运行另一个笔记本

    注意

    若要启用 %run,必须先在本地开发计算机的终端中运行以下命令来安装 nbformat 库:

    pip install nbformat
    

已启用的其他功能包括:

  • Spark 数据帧将转换为 pandas 数据帧,它们以 Jupyter 表格式显示。

限制

在 Visual Studio Code 的笔记本中运行单元格的限制包括:

  • 不支持笔记本 magic %r%scala,如果调用,会显示错误。 请参阅混合语言
  • 笔记本 magic %sql 不支持某些 DML 命令,例如“显示表”。