使用適用於 Visual Studio Code 的 Databricks 擴充功能,透過 Databricks Connect 執行和偵錯筆記本單元格。
您可以使用適用於 Visual Studio Code 的 Databricks Connect 擴充功能,在 Visual Studio Code 的介面中運行並偵錯整個或個別的筆記本單元格,並查看其結果。 所有程式代碼都會在本機執行,而涉及 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 StudioCode IDE中開啟筆記本時,筆記本及其單元格會包含其他功能。 請參閱執行儲存格和在筆記本編輯器中使用程式碼儲存格。
如需具有 .py
和 .ipynb
擴展名之檔名之筆記本格式的詳細資訊,請參閱 匯出和匯入 Databricks 筆記本。
執行 Python Jupyter noteboook 單元格
若要執行或偵錯 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
的display.HTML
的別名。 請參閱 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
,它會執行另一個筆記本。 請參閱 管理筆記本,並且將筆記本中的程式碼模組化。
開啟的其他功能包括:
- Spark DataFrame 會轉換成 pandas DataFrame,以 Jupyter 數據表格式顯示。
限制
在 Visual Studio Code 筆記本中執行儲存格的限制包括:
- 筆記本中
%r
和%scala
的魔法不受支持,如果被呼叫將顯示錯誤。 請參閱 混合語言。 - 筆記本魔術
%sql
不支援某些 DML 命令,例如 顯示資料表。