メインコンテンツまでスキップ

IntelliJ IDEA と Databricks Connect for Scala の併用

注記

この記事では、Databricks Runtime13.3LTLTS以降のDatabricks Connectについて説明します。

この記事では、Databricks Connect for Scala と IntelliJ IDEAScala プラグインと共に使用する方法について説明します。 Databricks Connect を使用すると、一般的な IDEs、ノートブック サーバー、およびその他のカスタム アプリケーションを 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 Development Kit (JDK) がローカルにインストールされていることを確認します。 Databricks では、ローカル JDK のバージョンを Databricks クラスターの JDK のバージョンと一致させることをお勧めします。

  2. IntelliJ IDEAを起動します。

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

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

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

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

  7. Build systemsbt をクリック。

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

注記

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

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

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

注記

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

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

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

  3. 作成 をクリックします。

  4. Databricks Connect パッケージを追加する: 新しい Scala プロジェクトを開いた状態で、 Project ツール ウィンドウ ( [View (表示)] > [Tool Windows > Project ] (プロジェクト) ) で、 project-name > targetbuild.sbtという名前のファイルを開きます。

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

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

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

  6. Load sbt changes notification アイコンをクリックして、新しいライブラリの場所と依存関係で Scala プロジェクトを更新するよ。

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

  8. コードを追加する: プロジェクト ツールウィンドウで、 プロジェクト名 > src > main > scala にある Main.scala という名前のファイルを開きます。

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

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

  11. クラスターが起動したら、メインメニューで [実行] > [‘main’ を実行] をクリックします。

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

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

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

  15. クラスターが開始されたら、メイン メニューで [実行] > [デバッグ 'Main' ] をクリックします。

  16. デバッグ ・ツール・ウィンドウ ( 「ビュー」>「ツール」Windows >デバッグ ) の 「コンソール 」タブで、計算機 ( 式の評価 ) アイコンをクリックします。

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

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

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