IntelliJ IDEA を Databricks Connect for Scala で使用する

この記事では、Databricks Connect for Databricks Runtime 13.3 LTS 以降について説明します。

この記事では、Databricks Connect for Scala および IntelliJ IDEAScala プラグインと共に使用する方法について説明します。 Databricks Connect を使用すると、一般的な IDE、ノートブック サーバー、およびその他のカスタム アプリケーションを Databricks クラスターに接続できます。 「Databricks Connect とは」を参照してください。

Databricks Connectの使用を開始する前に、Databricks Connect クライアントをセットアップする必要があります。

Databricks Connect と IntelliJ IDEA を Scala プラグインと共に使用してサンプル Scala sbtプロジェクトを作成、実行、デバッグするには、次の手順に従います。 これらの手順は、IntelliJ IDEA Community Edition 2023.3.6 でテストされています。 IntelliJ IDEA の異なるバージョンまたはエディションを使用する場合、次の手順は異なる場合があります。

  1. Java 開発キット (JDK) がローカルにインストールされていることを確認します。 Databricks では、ローカル JDK のバージョンを Databricks クラスター上の JDK のバージョンと一致させることをお勧めします。

  2. IntelliJ IDEAを起動します。

  3. [ファイル] > [ 新しい>プロジェクト] をクリックします。

  4. プロジェクトに意味のある 名前を付けます。

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

  6. [言語] で [Scala] をクリックします。

  7. [ビルド システム] で sbt をクリックする。

  8. 「JDK」ドロップダウンリストで、クラスターの JDK バージョンと一致する開発マシン上の JDK の既存のインストールを選択するか、「JDK のダウンロード」を選択し、画面の指示に従って、クラスターの JDK バージョンと一致する JDK をダウンロードします。

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

  9. sbt のドロップダウンリストで、最新バージョンを選択する。

  10. [Scala] ドロップダウンリストで、クラスター上の Scala バージョンと一致する Scala のバージョンを選択します。

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

  11. [ パッケージ接頭辞] に、プロジェクトのソースのパッケージ接頭辞の値 ( org.example.applicationなど) を入力します。

  12. [ サンプル コードの追加 ] ボックスがオンになっていることを確認します。

  13. 作成」をクリックします。

  14. Databricks Connect パッケージを追加します。 新しい Scala プロジェクトを開いた状態で、[プロジェクト] ツール ウィンドウ ( [ツール]build.sbt ウィンドウ> > [表示] で、 プロジェクト名 >ターゲット で という名前のファイルを開きます。

  15. 次のコードを build.sbt ファイルの末尾に追加して、Scala 用 Databricks Connect ライブラリの特定のバージョンに対するプロジェクトの依存関係を宣言します。

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

    14.3.1、クラスター上の Databricks Runtime バージョンと一致するバージョンの Databricks Connect ライブラリに置き換えます。 Databricks Connect ライブラリのバージョン番号は、 Maven の中央リポジトリで確認できます。

  16. sbt の変更をロードする通知アイコンをクリックして、Scala プロジェクトを新しいライブラリの場所と依存関係で更新する。

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

  18. コードを追加する: [プロジェクト] ツール ウィンドウで、プロジェクト名> src > メイン > ScalaMain.scala という名前のファイルを開きます。

  19. ファイル内の既存のコードを次のコードに置き換え、ファイルを保存します。

    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()
      }
    }
    
  20. コードを実行します: リモート Databricks ワークスペースでターゲット クラスターを開始します。

  21. クラスターが起動したら、メイン メニューで [ 実行] をクリックし> ['Main' の実行] をクリックします。

  22. [ 実行 ] ツール ウィンドウ ([実行] >> [ツール ウィンドウの表示]) の [ メイン ] タブに、 samples.nyctaxi.trips テーブルの最初の 5 行が表示されます。 すべての Scala コードはローカルで実行されますが、DataFrame 操作に関連するすべての Scala コードはリモート Databricks ワークスペースのクラスターで実行され、実行応答はローカルの呼び出し元に送り返されます。

  23. コードをデバッグする: リモート Databricks ワークスペースでターゲット クラスターを起動します (まだ実行されていない場合)。

  24. すぐ前のコードでは df.limit(5).show() の横のガターをクリックしてブレークポイントを設定します。

  25. クラスターが起動したら、メイン メニューで [実行>デバッグ 'Main' をクリックします。

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

  27. df.schemaを入力し、[ 評価] をクリックして DataFrameのスキーマを表示します。

  28. [デバッグ] ツールウィンドウのサイドバーで、緑色の矢印([プログラムの再開])アイコンをクリックします。

  29. [コンソール] ウィンドウに、samples.nyctaxi.trips テーブルの最初の 5 行が表示されます。すべての Scala コードはローカルで実行されますが、DataFrame 操作に関連するすべての Scala コードはリモート Databricks ワークスペースのクラスターで実行され、実行応答はローカルの呼び出し元に送り返されます。