次の方法で共有


チュートリアル: クラシック コンピューティングで IntelliJ IDEA からコードを実行する

このチュートリアルでは、 IntelliJ IDEAScala プラグインを使用して、Databricks Connect for Scala の使用を開始する方法について説明します。

このチュートリアルでは、IntelliJ IDEA でプロジェクトを作成し、Databricks Connect for Databricks Runtime 13.3 LTS 以降をインストールし、IntelliJ IDEA から Databricks ワークスペースのコンピューティングで単純なコードを実行します。

ヒント

Databricks アセット バンドルを使用して、サーバーレス コンピューティングでコードを実行する Scala プロジェクトを作成する方法については、「 Databricks アセット バンドルを使用して Scala JAR をビルドする」を参照してください。

要求事項

このチュートリアルを完了するには、次の要件を満たす必要があります。

  • ワークスペース、ローカル環境、コンピューティングは、Databricks Connect for Scala の要件を満たしています。 Databricks Connect の使用要件を参照してください。

  • クラスター ID を使用できる必要があります。 クラスター ID を取得するには、ワークスペースでサイドバーの [コンピューティング ] をクリックし、クラスターの名前をクリックします。 Web ブラウザーのアドレス バーで、URL の clustersconfiguration の間で文字の文字列をコピーします。

  • 開発マシンに Java Development Kit (JDK) がインストールされている。 インストールするバージョンの詳細については、 バージョンサポートマトリックスを参照してください。

    JDK がインストールされていない場合、または開発用マシンに複数の JDK がインストールされている場合は、後の手順 1 で特定の JDK をインストールまたは選択できます。 クラスターの JDK バージョンより下または上の JDK インストールを選択すると、予期しない結果が発生したり、コードがまったく実行されない可能性があります。

  • IntelliJ IDEA がインストールされている。 このチュートリアルは、IntelliJ IDEA Community Edition 2023.3.6 でテストされました。 別のバージョンまたはエディションの IntelliJ IDEA を使用する場合、次の手順は異なる場合があります。

  • IntelliJ IDEA 用の Scala プラグインがインストールされている。。

手順 1: Azure Databricks 認証を構成する

このチュートリアルでは、Azure Databricks OAuth ユーザー対マシン (U2M) 認証と Azure Databricks 構成プロファイルを使用しており、Azure Databricks ワークスペースを使用して認証します。 代わりに別の認証の種類を使うには、「接続プロパティの構成」をご覧ください。

OAuth U2M 認証を構成するには、次のように Databricks CLI が必要です。

  1. Databricks CLI をインストールします。

    Linux、macOS

    Homebrew を使用し、次の 2 つのコマンドを実行して Databricks CLI をインストールします。

    brew tap databricks/tap
    brew install databricks
    

    ウィンドウズ

    wingetChocolatey または Linux 用 Windows サブシステム (WSL) を使用して、Databricks CLI をインストールできます。 winget、Chocolatey、WSL を使えない場合は、この手順をスキップし、代わりにコマンド プロンプトまたは PowerShell を使ってソースから Databricks CLI をインストールする必要があります。

    Chocolatey を使用した Databricks CLI のインストールは、試験段階です。

    winget を使用して Databricks CLI をインストールするには、次の 2 つのコマンドを実行し、コマンド プロンプトを再起動してください。

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    Chocolatey を使用して Databricks CLI をインストールするには、次のコマンドを実行します。

    choco install databricks-cli
    

    WSL を使って Databricks CLI をインストールするには、次のようにします。

    1. WSL を使用して curlzip をインストールします。 詳細については、オペレーティング システムのドキュメントを参照してください。

    2. WSL を使用して、次のコマンドを実行して Databricks CLI をインストールしてください。

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. 次のコマンドを実行して、Databricks CLI がインストールされていることを確認します。これにより、インストールされている Databricks CLI の現在のバージョンが表示されます。 このバージョンは 0.205.0 以降である必要があります。

    databricks -v
    

次のように OAuth U2M 認証を開始します。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。

    次のコマンドでは、 <workspace-url> をワークスペースごとの Azure Databricks URL に置き換えます (例: https://adb-1234567890123456.7.azuredatabricks.net)。

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. Databricks CLI では、入力した情報を Azure Databricks 構成プロファイルとして保存するように求められます。 Enter キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイル名を入力します。 同じ名前の既存のプロファイルは、入力した情報で上書きされます。 プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルの一覧を取得するには、別のターミナルまたはコマンド プロンプト内で、Databricks CLI を使用してコマンド databricks auth profiles を実行します。 特定のプロファイルの既存の設定を表示するには、コマンド databricks auth env --profile <profile-name>を実行します。

  3. Web ブラウザー内で、画面の指示に従って Azure Databricks ワークスペースにログインします。

  4. ターミナルまたはコマンド プロンプトに表示される使用可能なクラスターのリストで、上下の方向キーを使ってワークスペース内のターゲット Azure Databricks クラスターを選び、Enter キーを押します。 クラスターの表示名の任意の部分を入力して、使用可能なクラスターの一覧をフィルター処理することもできます。

  5. プロファイルの現在の OAuth トークン値とトークンの今後の有効期限のタイムスタンプを表示するには、次のいずれかのコマンドを実行します。

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    同じ --host 値を持つ複数のプロファイルがある場合は、Databricks CLI が正しく一致する OAuth トークン情報を見つけるのに役立つ --host-p のオプションを一緒に指定することが必要になる場合があります。

手順 2: プロジェクトを作成する

  1. IntelliJ IDEA を開始します。

  2. メイン メニューで、[ファイル]>[新規]>[プロジェクト] の順にクリックします。

  3. プロジェクトにわかりやすい名前を付けてください。

  4. [場所] では、フォルダー アイコンをクリックし、画面上の指示を完了して、新しい Scala プロジェクトへのパスを指定してください。

  5. [言語] では、[Scala] をクリックしてください。

  6. [ビルド システム] では、[sbt] をクリックしてください。

  7. [JDK] ドロップダウン リストで、クラスターの JDK バージョンと一致する開発マシンの JDK の既存のインストールを選択するか、[JDK のダウンロード] を選択し、画面上の指示に従って、クラスターの JDK のバージョンに一致する JDK をダウンロードしてください。 要件を参照してください。

    クラスターの JDK バージョンより上または下の JDK インストールを選択すると、予期しない結果が発生したり、コードがまったく実行されないおそれがあります。

  8. [sbt] ドロップダウン リストで、最新バージョンを選択してください。

  9. [Scala] ドロップダウン リストで、クラスターの Scala バージョンと一致する Scala のバージョンを選択します。 要件を参照してください。

    クラスターの Scala バージョンより下または上の Scala バージョンを選択すると、予期しない結果が発生したり、コードがまったく実行されない可能性があります。

  10. [Scala] の横にある [ソースのダウンロード] ボックスにチェックが入っていることを確認します。

  11. [ パッケージ プレフィックス] に、プロジェクトのソースのパッケージ プレフィックス値を入力します (例: org.example.application)。

  12. [サンプル コードの追加] ボックスにチェックが入っていることを確認してください。

  13. Create をクリックしてください。

IntelliJ IDEA プロジェクトを作成する

手順 3: Databricks Connect パッケージを追加する

  1. 新しい Scala プロジェクトを開いた状態で、[プロジェクト] ツール ウィンドウ ([表示] > [ツール ウィンドウ] > [プロジェクト]) で、build.sbt という名前のファイルを、project-name> target で開きます。

  2. 次のコードを build.sbt ファイルの末尾に追加します。このファイルは、クラスターの Databricks Runtime バージョンと互換性のある Scala 用 Databricks Connect ライブラリの特定のバージョンに対するプロジェクトの依存関係を宣言します。

    libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.+"
    

    17.0 を、クラスターの Databricks Runtime バージョンと一致する Databricks Connect ライブラリのバージョンに置き換えてください。 たとえば、Databricks Connect 16.4.+ は Databricks Runtime 16.4 LTS と一致します。 Databricks Connect ライブラリのバージョン番号は、Maven 中央リポジトリで確認できます。

    Databricks Connect を使用してビルドする場合は、 org.apache.spark:spark-core などの Apache Spark 成果物をプロジェクトに含めないでください。 代わりに、Databricks Connect に対して直接コンパイルします。

  3. [sbt の変更の読み込み] 通知アイコンをクリックして、Scala プロジェクトを新しいライブラリの場所と依存関係で更新してください。

    Databricks Connect パッケージをインストールする

  4. IDE の下部にある sbt 進行状況インジケーターが消えるまで待ちます。 sbt 読み込みプロセスの完了には、数分かかる場合があります。

手順 4: コードを追加する

  1. [プロジェクト] ツール ウィンドウで、Main.scala の中にある という名前のファイルを開きます。

  2. 構成プロファイルの名前に応じて、ファイル内の既存のコードを次のコードで置き換え、ファイルを保存します。

    手順 1 の構成プロファイルの名前が DEFAULT の場合は、ファイル内の既存のコードを次のコードで置き換え、ファイルを保存します。

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val spark = DatabricksSession.builder().remote().getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

    手順 1 の構成プロファイルの名前が DEFAULT でない場合は、代わりにファイル内の既存のコードを次のコードで置き換えます。 プレースホルダー <profile-name> を手順 1 の構成プロファイルの名前に置き換えて、ファイルを保存します。

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import com.databricks.sdk.core.DatabricksConfig
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val config = new DatabricksConfig().setProfile("<profile-name>")
        val spark = DatabricksSession.builder().sdkConfig(config).getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

手順 5: VM オプションを構成する

  1. build.sbtがある IntelliJ に現在のディレクトリをインポートします。

  2. IntelliJ で Java 17 を選択します。 File>Project Structure>SDK に移動します。

  3. src/main/scala/com/examples/Main.scalaを開きます。

  4. Main の構成に移動して、VM オプションを追加します。

    メインの編集

    VM オプションの追加

  5. VM オプションに次を追加します。

    --add-opens=java.base/java.nio=ALL-UNNAMED
    

ヒント

または、Visual Studio Code を使用している場合は、sbt ビルド ファイルに次のコードを追加します。

fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

次に、ターミナルからアプリケーションを実行します。

sbt run

手順 6: コードを実行する

  1. リモートの Azure Databricks ワークスペースでターゲット クラスターを開始します。
  2. クラスターが起動したら、メイン メニューの [実行] > [メイン] をクリックします。
  3. [実行] ツール ウィンドウ ([表示] > [ツール ウィンドウ] > [実行]) の [メイン] タブに、samples.nyctaxi.trips テーブルの最初の 5 行が表示されます。

手順 7: コードをデバッグする

  1. ターゲット クラスターがまだ実行中の状態で、前述のコードで、df.limit(5).show() の横にある余白をクリックしてブレークポイントを設定します。

  2. メイン メニューで、> をクリックします。 [デバッグ] ツール ウィンドウ ([表示] > [ツール ウィンドウ] > [デバッグ]) の [コンソール] タブで、計算ツール ([式の評価]) アイコンをクリックします。

  3. df.schemaを入力します。

  4. [ 評価 ] をクリックして、DataFrame のスキーマを表示します。

  5. デバッグ ツール ウィンドウのサイドバーで、緑色の矢印 (プログラムの再開) アイコンをクリックします。 samples.nyctaxi.trips テーブルの最初の 5 行がコンソール ウィンドウに表示されます。

    IntelliJ IDEA プロジェクトをデバッグする