Visual Studio Code の Databricks 拡張機能を使用して、Databricks Connect でノートブックのセルを実行およびデバッグします
ノートブックを一度に 1 つのセルずつ、またはすべてのセルを一度に実行およびデバッグし、Visual Studio Code Databricks Connect 統合用の Databricks 拡張機能を使用して、Visual Studio Code UI で結果を確認できます。 すべてのコードはローカルで実行されますが、リモートDataFrame ワークスペースのクラスターで実行されるDatabricks 操作を含むすべてのコードと実行応答は、ローカルの呼び出し元に送り返されます。すべてのコードはローカルでデバッグされますが、 Spark コードはすべてリモート Databricks ワークスペースのクラスターで引き続き実行されます。 コア Spark エンジン コードは、クライアントから直接デバッグできません。
この機能は、Databricks Runtime 13.3 以降で動作します。
Visual Studio Code の Databricks 拡張機能でノートブックの Databricks Connect 統合を有効にするには、Visual Studio Code の Databricks 拡張機能に Databricks Connect をインストールする必要があります。 Visual Studio Code の Databricks 拡張機能については、「Databricks Connect を使用したコードのデバッグ」を参照してください。
Python ノートブックのセルを実行する
ファイル名が .py
のノートブックの場合、Visual Studio Code IDE でノートブックを開くと、各セルに [実行セル ]、[ 実行上 ]、および [デバッグ セル ] ボタンが表示されます。 セルを実行すると、その結果が IDE の別のタブに表示されます。 デバッグ中は、デバッグ中のセルに 「Continue 」、「 Stop 」、および 「Step Over 」ボタンが表示されます。 セルをデバッグするときに、変数の状態の監視、呼び出し履歴とデバッグ コンソールの表示など、Visual Studio Code のデバッグ機能を使用できます。
ファイル名が .ipynb
拡張子を持つノートブックの場合、Visual Studio Code IDE でノートブックを開くと、ノートブックとそのセルに追加の機能が含まれています。 セルの実行およびノートブック・エディターでのコード・セルの操作を参照してください。
拡張子が .py
と .ipynb
のファイル名のノートブック形式の詳細については、「Databricks ノートブックのエクスポートとインポート」を参照してください。
Python Jupyter noteboookセルを実行する
Python Jupyter ノートブック (.ipynb
を実行またはデバッグするには:
- プロジェクトで、実行またはデバッグする Python Jupyter ノートブックを開きます。 PythonファイルがJupyterノートブック形式であり、拡張子が
.ipynb
であることを確認してください。
新しい Python Jupyter ノートブックを作成するには、 コマンド パレット 内から >Create: New Jupyter ノートブック コマンドを実行します。
-
デバッグなしですべてのセルを実行するには 「すべてのセルを実行」 を、デバッグなしで対応する個々のセルを実行するには 「セルを実行」 」を、 Jupyter パネルに変数値を表示して、デバッグを制限して個々のセルを行ごとに実行する >> 、 「行ごとに実行」 をクリックします。
個々のセル内で完全なデバッグを行うには、ブレークポイントを設定し、セル の [実行 ] ボタンの横にあるメニューの [セルのデバッグ ] をクリックします。
これらのオプションのいずれかをクリックすると、不足している Python Jupyter ノートブック パッケージの依存関係をインストールするように求められる場合があります。 クリックしてインストールします。
詳細については、「 VS Code の Jupyter ノートブック」を参照してください。
ノートブックのグローバル
次のノートブック グローバルも有効になります。
-
spark
は、databricks.connect.DatabricksSession
のインスタンスを表し、拡張機能から Databricks 認証資格情報を取得してDatabricksSession
をインスタンス化するように事前構成されています。 ノートブック セルのコードでDatabricksSession
が既にインスタンス化されている場合は、代わりにこのDatabricksSession
設定が使用されます。 「Databricks Connect for Python のコード例」を参照してください。 -
udf
は、Python UDFs のエイリアスであるpyspark.sql.functions.udf
のエイリアスとして事前設定されています。 PySpark.sql.functions.udf を参照してください。 -
sql
は、spark.sql
のエイリアスとして事前設定されています。spark
は、前述のように、databricks.connect.DatabricksSession
の事前設定されたインスタンスを表します。 Spark SQLを参照してください。 -
dbutils
は、databricks-sdk
からインポートされ、拡張機能から Databricks 認証資格情報を取得することによってインスタンス化される Databricks ユーティリティのインスタンスとして事前構成されています。「Databricks ユーティリティの使用」を参照してください。
Databricks Connect を使用するノートブックでは、Databricks ユーティリティのサブセットのみがサポートされます。
dbutils.widgets
を有効にするには、まず、ローカル開発マシンのターミナルで次のコマンドを実行して、Databricks SDK for Python をインストールする必要があります。
pip install 'databricks-sdk[notebook]'
-
display
は、Jupyter 組み込みIPython.display.display
のエイリアスとして事前設定されています。 IPython.display.displayを参照してください。 -
displayHTML
、dbruntime.display.displayHTML
のエイリアスとして事前設定されています。これはipython
のdisplay.HTML
のエイリアスです。 iPython.display.html を参照してください。
ノートブックの魔法
次のノートブックマジックも有効になります。
-
%fs
、これはdbutils.fs
コールをするのと同じです。 ミックス言語を参照してください。 -
%sh
は、ローカル マシン上のセル マジック%%script
を使用してコマンドを実行します。 これにより、リモートの Databricks ワークスペースでコマンドは実行されません。 「言語を混在させる」を参照してください。 -
%md
%md-sandbox
は、セル マジック%%markdown
を実行します。「言語を混在させる」を参照してください。 -
%sql
はspark.sql
を実行します。 「言語を混在させる」を参照してください。 -
%pip
は、ローカル マシン上でpip install
を実行します。 これは、リモートの Databricks ワークスペースではpip install
実行されません。%pip
コマンドによるライブラリの管理を参照してください。 -
%run
は、別のノートブックを実行します。 「ノートブックのオーケストレーションとノートブックでのコードのモジュール化」を参照してください。
%run
を有効にするには、まず、ローカル開発マシンのターミナルで次のコマンドを実行して nbformat ライブラリをインストールする必要があります。
pip install nbformat
有効になっているその他の機能は次のとおりです。
- Spark DataFrames は Pandas DataFramesに変換され、Jupyter テーブル形式で表示されます。
制限
Visual Studio Code のノートブックでセルを実行する場合の制限事項には、次のようなものがあります。
- ノートブックのマジック
%r
および%scala
はサポートされておらず、呼び出されるとエラーが表示されます。 「言語を混在させる」を参照してください。 - ノートブックのマジック
%sql
は、 Show Tables などの一部の DML コマンドをサポートしていません。