次の方法で共有


Databricks 用 VSCode 拡張機能チュートリアル: クラスター上でジョブとして Python を実行する

このチュートリアルでは、Azure Databricks クラスター上で基本的な Python コード ファイルを Azure Databricks ジョブとしてリモート ワークスペースで実行して、Visual Studio Code 用の Databricks 拡張機能の使用を開始する方法について説明します。 「Visual Studio Code 用 Databricks 拡張機能について」を参照してください。

このチュートリアルの実施内容

このハンズオン チュートリアルでは、次の操作を行います。

  • ローカル Python コードを実行する Azure Databricks クラスターを作成します。
  • Visual Studio Code と Visual Studio Code 用の Databricks 拡張機能をインストールします。
  • Azure Databricks 認証を設定し、この情報を使用して Visual Studio Code 用の Databricks 拡張機能を構成します。
  • リモート クラスターに関する情報を使用して Visual Studio Code の Databricks 拡張機能を構成し、拡張機能にクラスターを起動させます。
  • ローカル Python コードをアップロードするためにリモート Azure Databricks ワークスペースの場所を指定して、Visual Studio Code 用の Databricks 拡張機能を構成し、コードのアップロード イベントのリッスンを開始します。
  • Python コードを記述して保存し、コード アップロード イベントをトリガーします。
  • Visual Studio Code 用の Databricks 拡張機能を使用して、リモート クラスターでアップロードされたコードを実行し、リモート ジョブ実行としてクラスターで実行します。

このチュートリアルでは、Python コード ファイルの実行方法および OAuth ユーザー対マシン (U2M) 認証の設定方法のみを説明します。 Python コード ファイルのデバッグ方法、ノートブックの実行とデバッグ方法、その他の認証の種類の設定方法については、「次の手順」を参照してください。

手順 1: クラスターを作成する

使用するリモート Azure Databricks クラスターが既にある場合は、クラスターの名前をメモして、Visual Studio Code をインストールする手順 2 に進みます。 使用可能なクラスターを表示するには、ワークスペースのサイドバーで [コンピューティング] をクリックします。

Databricks では、スムーズに使用開始するために個人用コンピューティング クラスターを作成することをお勧めします。 クラスターを作成するには、次の操作を行います。

  1. Azure Databricks ワークスペースのサイドバーで、[コンピューティング] をクリックします。
  2. [個人用コンピューティングで作成] をクリックします。
  3. [コンピューティングの作成] をクリックします。
  4. クラスターの名前は、拡張機能にクラスター情報を追加するときに手順 5 で後ほど必要になりますので、メモしておきます。

手順 2: Visual Studio Code のインストール

Visual Studio Code をインストールするには、macOS Linux、または Windows の手順に従います。

Visual Studio Code が既にインストールされている場合は、バージョン 1.69.1 以降かどうかを確認してください。 バージョンの確認するには、Visual Studio Code のメイン メニューで、macOS の場合は、[Code] > [Visial Studio Code のバージョン情報]、Linux または Windows の場合は、[ヘルプ] > [バージョン情報] をクリックします。

Visual Studio Code を更新するには、メイン メニューで、macOS の場合は、[Code] > [更新の確認]、Linux または Windows の場合は、[ヘルプ] > [更新の確認] をクリックします。

手順 3: Databricks 拡張機能をインストールする

Visual Studio Code 拡張機能のインストール

  1. Visual Studio Code サイドバーで、[拡張機能] アイコンをクリックします。
  2. [Marketplace で拡張機能を検索する]Databricks と入力します。
  3. Databricks による Databricks 用の IDE サポートというサブタイトルを含む Databricks というラベルが付いたエントリで、[インストール] をクリックします。

手順 4: Azure Databricks 認証を設定する

この手順では、次のようにして、Visual Studio Code 用の Databricks 拡張機能とリモート Azure Databricks ワークスペース間の認証を有効にします。

  1. Visual Studio Code から、後ほど手順 7 で作成して実行する Python コードを格納するために使用するローカル開発マシン上の空のフォルダーを開きます。 これを行うには、メイン メニューで [ファイル] > [フォルダーを開く] をクリックし、画面の指示に従います。
  2. Visual Studio Code サイドバーで、Databricks ロゴ アイコンをクリックします。
  3. [構成] ウィンドウで、[Configure Databricks](Databricks の構成) をクリックします。
  4. コマンド パレットDatabricks Host に、ワークスペースごとの URL (例: https://adb-1234567890123456.7.azuredatabricks.net) を入力します。 次に、Enter キーを押します。
  5. [OAuth (user to machine)] を選択します。
  6. Web ブラウザー内で画面の指示を実行して、Azure Databricks での認証を完了します。 メッセージが表示されたら、all-apis アクセスを許可 します。

手順 5: Databricks 拡張機能にクラスター情報を追加し、クラスターを起動する

  1. 前の手順で認証を設定した [構成] ペインが既に開いている状態で、[クラスター] の横にある歯車アイコン (クラスターの構成) をクリックします。
  2. コマンド パレットで、手順 1 で作成したクラスターの名前を選択します。
  3. クラスターがまだ起動していない場合は、クラスターを起動します。クラスターの横に、開始 (クラスターの開始) アイコンが表示されている場合は、そのアイコンをクリックします。

クラスターを起動する

手順 6: Databricks 拡張機能にコードのアップロード場所を追加し、アップロード リスナーを開始する

  1. 前の手順でクラスター情報を追加した [構成] ペインが既に開いている状態で、[同期先] の横にある歯車アイコン (同期先の構成) をクリックします。
  2. コマンド パレットで、[新しい同期先の作成] をクリックします。
  3. Enter キーを押して、生成されたリモート アップロード ディレクトリ名を確認します。
  4. まだ開始されていない場合は、アップロード リスナーを開始します。[同期先] の横に矢印の付いた円 (同期の開始) アイコンが表示されている場合は、そのアイコンをクリックします。

アップロード リスナーを開始する

手順 7: Python コードを作成して実行する

  1. ローカル Python コード ファイルを作成する: サイドバーで、フォルダー (エクスプローラー) アイコンをクリックします。

  2. メイン メニューで、[ファイル] > [新しいファイル] をクリックします。 ファイルに demo.py という名前を付け、プロジェクト ルートに保存します。

  3. 次のコードをファイルに追加して保存します。 このコードは、次のように基本的な PySpark DataFrame のコンテンツを作成して表示します。

    from pyspark.sql import SparkSession
    from pyspark.sql.types import *
    
    spark = SparkSession.builder.getOrCreate()
    
    schema = StructType([
       StructField('CustomerID', IntegerType(), False),
       StructField('FirstName',  StringType(),  False),
       StructField('LastName',   StringType(),  False)
    ])
    
    data = [
       [ 1000, 'Mathijs', 'Oosterhout-Rijntjes' ],
       [ 1001, 'Joost',   'van Brunswijk' ],
       [ 1002, 'Stan',    'Bokenkamp' ]
    ]
    
    customers = spark.createDataFrame(data, schema)
    customers.show()
    
    # Output:
    #
    # +----------+---------+-------------------+
    # |CustomerID|FirstName|           LastName|
    # +----------+---------+-------------------+
    # |      1000|  Mathijs|Oosterhout-Rijntjes|
    # |      1001|    Joost|      van Brunswijk|
    # |      1002|     Stan|          Bokenkamp|
    # +----------+---------+-------------------+
    
  4. [Explorer] ビューで、demo.py ファイルを右クリックしてから [Databricks にファイルをアップロードして実行] をクリックします。 出力は [デバッグ コンソール] ペインに表示されます。

Databricks でのファイルのアップロードと実行

手順 8: コードをジョブとして実行する

前の手順では、リモート クラスター上で Python コードを直接実行しました。 この手順では、コードを直接実行する代わりにクラスターを使用してコードを Azure Databricks ジョブとして実行するワークフローを開始します。 「Azure Databricks ジョブとは」を参照してください。

このコードをジョブとして実行するには、[エクスプローラー] ビューで demo.py ファイルを右クリックし、[Databricks のワークフローとしてファイルを実行] をクリックします。 出力は、demo.py ファイル エディターの横にある別のエディター タブに表示されます。

Databricks でワークフローとしてファイルを実行する

以上でこのチュートリアルは終了です。

次のステップ

これで Visual Studio Code 用 Databricks 拡張機能を使用してローカルの Python ファイルをアップロードし、リモートで実行できました。次の拡張機能の使用方法の詳細情報を参照ください。

  • 拡張機能の認証を設定するその他の方法について説明します。 「VS Code 用 Databricks 拡張機能の認証の設定」をご参照ください。
  • PySpark および Databricks ユーティリティのコード補完を有効にする、Databricks Connect を使用して Python コードを実行またはデバッグする、Azure Databricks ジョブとしてファイルまたはノートブックを実行する、pytest を使用してテストを実行する、環境変数定義ファイルを使用する、カスタム実行構成を作成する、などの方法について説明します。 「Visual Studio Code 用 Databricks 拡張機能の開発タスク」をご参照ください。