使用 Databricks IDE 擴充功能執行並除錯筆記本儲存格

你可以一次執行並除錯筆記本,一個儲存格或同時除錯所有儲存格,並透過 Databricks IDE 擴充套件 Databricks Connect 整合,在 Visual Studio Code 介面中查看結果。 所有程式代碼都會在本機執行,而涉及 DataFrame 作業的所有程式代碼都會在遠端 Azure Databricks 工作區的叢集上執行,並執行回應會傳回給本機呼叫端。 所有程式代碼都會在本機偵錯,而所有Spark程式代碼都會繼續在遠端 Azure Databricks 工作區中的叢集上執行。 核心 Spark 引擎程式代碼無法直接從客戶端進行偵錯。

備註

此功能適用於 Databricks Runtime 13.3 和更新版本。

要啟用 Databricks Connect 與筆記本的整合,必須在 Databricks IDE 擴充功能中安裝 Databricks Connect。 請參閱 使用 Databricks Connect 除錯程式碼以獲得 Databricks IDE 擴充功能

執行 Python 筆記本儲存格

對於具有.py擴展名的筆記本,當您在 Visual Studio Code IDE 中開啟筆記本時,每個單元格都會顯示 [執行單元格][執行上方][偵錯單元格] 按鈕。 當您執行儲存格時,其結果會顯示在 IDE 中的個別索引標籤中。 當您進行偵錯時,正在偵錯的儲存格會顯示 [繼續]、 [停止] 和 [跳過 ] 按鈕。 當您偵錯數據格時,您可以使用 Visual Studio Code 偵錯功能,例如監看變數的狀態,以及檢視呼叫堆疊和偵錯控制台。

對於具有 .ipynb 擴展名的筆記本,當您在Visual StudioCode IDE中開啟筆記本時,筆記本及其單元格會包含其他功能。 請參閱執行儲存格在筆記本編輯器中使用程式碼儲存格

如需具有 .py.ipynb 擴展名之檔名之筆記本格式的詳細資訊,請參閱 匯入和匯出 Databricks 筆記本

執行 Python Jupyter 筆記本儲存格

若要執行或偵錯 Python Jupyter Notebook (.ipynb):

  1. 在您的專案中,開啟您要執行或偵錯的 Python Jupyter Notebook。 請確定 Python 檔案是 Jupyter 筆記本格式,且擴展名為 .ipynb

    提示

    您可以在>中執行[建立:新增 Jupyter Notebook]命令,以建立新的 Python Jupyter Notebook。

  2. 單擊 [執行所有單元格] 以執行所有單元格而不偵錯,[執行單元格] 以執行個別對應的單元格而不偵錯,或 [依行執行] 以有限偵錯方式逐行執行個別單元格,並在 Jupyter 面板中顯示變數值([檢視] > [開啟檢視] > Jupyter)。

    如需在個別儲存格內進行完整的偵錯,請先設定斷點,然後在儲存格 [執行] 按鈕旁邊的選單中按一下 [偵錯儲存格]。

    按兩下上述任何選項之後,系統可能會提示您安裝遺漏的 Python Jupyter Notebook 套件相依性。 按一下以安裝。

    如需詳細資訊,請參閱 VS Code 中的 Jupyter Notebook。

筆記本中的全域變數

下列筆記本全域變數也已啟用:

  • spark,代表 databricks.connect.DatabricksSession實例,會預先配置為從擴充功能取得 Azure Databricks 驗證認證來實例化 DatabricksSession。 如果 DatabricksSession 已在筆記本儲存格的程式代碼中具現化,則會改用此 DatabricksSession 設定。 請參閱 適用於 Python 的 Databricks Connect 程式代碼範例。

  • udf 預先設定為 pyspark.sql.functions.udf 的別名,而 pyspark.sql.functions.udf 則是 Python UDF 的別名。 請參閱 pyspark.sql.functions.udf

  • sql,預先設定為spark.sql的別名。 spark如先前所述,表示 預先設定的 databricks.connect.DatabricksSession實例。 請參閱 Spark SQL

  • dbutils,預先設定為 Databricks Utilities 的實例,它會從 databricks-sdk 匯入,並透過從延伸模組取得 Azure Databricks 驗證認證來具現化。 請參閱 使用 Databricks 公用程式

    備註

    只有部分 Databricks 公用程式支援用於 Databricks Connect 的筆記本。

    若要啟用 dbutils.widgets,您必須先在本機開發計算機的終端機中執行下列命令,以安裝 Databricks SDK for Python:

    pip install 'databricks-sdk[notebook]'
    
  • display,預先設定為 Jupyter 內建 IPython.display.display的別名。 請參閱 IPython.display.display

  • displayHTML 預先設定為 dbruntime.display.displayHTML 的別名,而 dbruntime.display.displayHTML 是來自 ipython 的 的別名。 請參閱 IPython.display.html

筆記本魔術

也會啟用下列筆記本魔術:

  • %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,它會執行另一個筆記本。 請參考 Orchestrate Databricks 筆記本並模組化程式碼

    備註

    若要啟用 %run,您必須先在本機開發電腦的終端機中執行下列命令,以安裝 nbformat 連結庫:

    pip install nbformat
    

開啟的其他功能包括:

  • Spark DataFrame 會轉換成 pandas DataFrame,以 Jupyter 數據表格式顯示。

限制

在 Visual Studio Code 筆記本中執行儲存格的限制包括:

  • 筆記本中%r%scala的魔法不受支持,如果被呼叫將顯示錯誤。 請參閱 混合語言
  • 筆記本魔術 %sql 不支援某些 DML 命令,例如 顯示資料表