Visual Studio Code用のDatabricks拡張機能を使用したDatabricks Connectによるノートブックセルの実行とデバッグ

Visual Studio Code Databricks Connect 統合用の Databricks 拡張機能を使用すると、ノートブックを 1 セルずつ、またはすべてのセルで実行およびデバッグし、その結果を Visual Studio Code UI で確認できます。 すべてのコードはローカル環境で実行されますが、DataFrame 操作を含むコードはすべて、リモートの Azure Databricks ワークスペース内のクラスターで実行され、実行の応答がローカル環境の呼び出し元に返送されます。 すべてのコードはローカル環境でデバッグされますが、Spark のすべてのコードはリモートの Azure Databricks ワークスペース内のクラスターで引き続き実行されます。 コア Spark エンジン コードをクライアントから直接デバッグすることはできません。

Note

この機能は、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 の別のタブに表示されます。 デバッグすると、デバッグ中のセルに[続行] ボタン、[停止] ボタン、[ステップ オーバー] ボタンが表示されます。 セルをデバッグすると、変数の状態の確認、コール スタックやデバッグ コンソールの表示などの Visual Studio Code のデバッグ機能を使用できます。

.ipynb 拡張機能を持つファイル名を含むノートブックの場合、Visual Studio Code IDE でノートブックを開くと、ノートブックとそのセルに追加機能が表示されます。 [セルの実行][ノートブック エディターでコード セルを操作する] を参照してください。

.py および .ipynb 拡張機能を持つファイル名の ノートブック形式については、「Databricks ノートブックのエクスポートとインポート」を参照してください。

Python Jupyter noteboook セルの実行

Python Jupyter ノートブック (.ipynb) を実行またはデバッグするには、次のようにします。

  1. プロジェクトで、実行またはデバッグする Python Jupyter ノートブックを開きます。 Python ファイルが Jupyter ノートブック形式で、拡張子が .ipynb であることを確認してください。

    ヒント

    [コマンド パレット] 内から >[Create: New Jupyter Notebook] (作成: 新しいJupyter ノートブック) コマンドを実行すると、新しい Python Jupyter ノートブックを作成できます。

  2. すべてのセルをデバッグなしで実行するには、Run All Cells (すべてのセルを実行) をクリックし、対応する個々のセルをデバッグなしで実行するには セルの実行 をクリックし、Jupyter パネル (表示 > ビューを開きます >Jupyter」) に可変値を表示した状態で限定されたデバッグを行いながら個々のセルを 1 行ずつ実行するには、Run by Line (行単位で実行) をクリックします。

    個々のセル内で完全なデバッグを行うには、ブレークポイントを設定し、セルの [実行] ボタンの横にあるメニューの [Debug Cell] (セルのデバッグ) をクリックします。

    これらのオプションのいずれかをクリックした後に、不足している Python Jupyter ノートブック パッケージの依存関係をインストールするように求められる場合があります。 クリックしてインストールしてください。

    詳細については、「VS Code での Jupyter ノートブック」を参照してください。

ノートブックグローバル

次のノートブック グローバルも有効になっています。

  • spark: databricks.connect.DatabricksSession のインスタンスを表します。拡張機能から Azure Databricks 認証資格情報を取得して DatabricksSession をインスタンス化するように事前構成されています。 ノートブック セルのコードで DatabricksSession が既にインスタンス化されている場合、代わりにこの DatabricksSession 設定が使用されます。 「Databricks Connect for Python のコード例」を参照してください。

  • udf: pyspark.sql.functions.udf の別名として事前構成されています。これは Python UDF の別名です。 「pyspark.sql.functions.udf」を参照してください。

  • sql: spark.sql の別名として事前構成されています。 spark は、上記のとおり、databricks.connect.DatabricksSession の事前構成済みインスタンスを表します。 「Spark SQL」を参照してください。

  • dbutils: Databricks ユーティリティのインスタンスとして事前構成されています。databricks-sdk からインポートされ、拡張機能から Azure Databricks 認証資格情報を取得してインスタンス化されます。 「Databricks ユーティリティを使用する」を参照してください。

    Note

    Databricks Connect を使用するノートブックでは、Databricks Utilities のサブセットのみがサポートされています。

    dbutils.widgets を有効にするには、まずローカルの開発マシンのターミナルで次のコマンドを実行して、Databricks SDK for Python をインストールする必要があります。

    pip install 'databricks-sdk[notebook]'
    
  • display: Jupyter 組み込み関数 IPython.display.display の別名として事前構成されています。 「IPython.display.display」を参照してください。

  • displayHTML: dbruntime.display.displayHTML の別名として事前構成されています。これは、ipythondisplay.HTML の別名です。 「IPython.display.html」を参照してください。

ノートブックマジック

次のノートブック マジックも有効にできます。

  • %fs: dbutils.fs 呼び出しの実行と同じです。 「言語を混在させる」を参照してください。

  • %sh: ローカル コンピューターでセル マジック %%script を使用してコマンドを実行します。 リモートの Azure Databricks ワークスペースでコマンドが実行されることはありません。 「言語を混在させる」を参照してください。

  • %md%md-sandbox: セル マジック %%markdown を実行します。 「言語を混在させる」を参照してください。

  • %sql: spark.sql を実行します。 「言語を混在させる」を参照してください。

  • %pip: ローカル コンピューターで pip install を実行します。 リモートの Azure Databricks ワークスペースで pip install が実行されることはありません。 「%pip コマンドを使用してライブラリを管理する」を参照してください。

  • %run: 別のノートブックを実行します。 「ノートブックでコードをモジュール化またはリンクする」を参照してください。

    Note

    %run を有効にするには、まずローカルの開発マシンのターミナルで以下のコマンドを実行して、nbformat ライブラリをインストールする必要があります。

    pip install nbformat
    

さらに、次のような機能も有効になります。

  • Spark DataFrame は pandas DataFrame に変換され、Jupyter テーブル形式で表示されます。

制限事項

Visual Studio Code のノートブックでセルを実行する場合の制限は次のとおりです。

  • ノートブック マジック %r%scala はサポートされていないため、呼び出すとエラーが表示されます。 「言語を混在させる」を参照してください。
  • ノートブック マジック %sql では、Show Tables などの一部の DML コマンドがサポートされていません。