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を実行またはデバッグするには:

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

    ヒント

    新しい Python Jupyter ノートブックを作成するには、コマンド パレット内から >Create: New Jupyter ノートブック コマンドを実行します。

  2. デバッグなしですべてのセルを実行するには 「すべてのセルを実行」 を、デバッグなしで対応する個々のセルを実行するには「セルを実行」 」を、 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を実行します。「言語を混在させる」を参照してください。

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

  • %pipは、ローカル マシン上で pip install を実行します。 これは、リモートの Databricks ワークスペースでは pip install 実行されません。 %pip コマンドによるライブラリの管理を参照してください。

  • %runは、別のノートブックを実行します。 「 別のノートブックから Databricks ノートブックを実行する」を参照してください。

    注:

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

    pip install nbformat
    

有効になっているその他の機能は次のとおりです。

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

制限事項

Visual Studio Code のノートブックでセルを実行する場合の制限事項には、次のようなものがあります。

  • ノートブックのマジック %r および %scala はサポートされておらず、呼び出されるとエラーが表示されます。 「言語を混在させる」を参照してください。

  • ノートブックのマジック %sql は、 Show Tables などの一部の DML コマンドをサポートしていません。