Visual Studio Code の Databricks 拡張機能を使用して、Databricks Connect でノートブックのセルを実行およびデバッグします
ノートブックを一度に 1 つのセルずつ、またはすべてのセルを一度に実行およびデバッグし、Visual Studio Code Databricks Connect 統合用の Databricks 拡張機能を使用して、Visual Studio Code UI で結果を確認できます。 すべてのコードはローカルで実行されますが、リモートデータフレーム ワークスペースのクラスターで実行される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 ノートブックのセルを実行する
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 UDF のエイリアスである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 データフレーム は Pandas データフレームに変換され、Jupyter テーブル形式で表示されます。
制限
Visual Studio Code のノートブックでセルを実行する場合の制限事項には、次のようなものがあります。
- ノートブックのマジック
%rおよび%scalaはサポートされておらず、呼び出されるとエラーが表示されます。 「言語を混在させる」を参照してください。 - ノートブックのマジック
%sqlは、 Show Tables などの一部の DML コマンドをサポートしていません。