你可以一次執行並除錯筆記本,一個儲存格或同時除錯所有儲存格,並透過 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):
在您的專案中,開啟您要執行或偵錯的 Python Jupyter Notebook。 請確定 Python 檔案是 Jupyter 筆記本格式,且擴展名為
.ipynb。提示
您可以在>中執行[建立:新增 Jupyter Notebook]命令,以建立新的 Python Jupyter Notebook。
單擊 [執行所有單元格] 以執行所有單元格而不偵錯,[執行單元格] 以執行個別對應的單元格而不偵錯,或 [依行執行] 以有限偵錯方式逐行執行個別單元格,並在 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 筆記本並模組化程式碼。
開啟的其他功能包括:
- Spark DataFrame 會轉換成 pandas DataFrame,以 Jupyter 數據表格式顯示。
限制
在 Visual Studio Code 筆記本中執行儲存格的限制包括:
- 筆記本中
%r和%scala的魔法不受支持,如果被呼叫將顯示錯誤。 請參閱 混合語言。 - 筆記本魔術
%sql不支援某些 DML 命令,例如 顯示資料表。