Databricks Connect for Scala で InteliJ IDEA を使用する
Note
この記事では、Databricks Runtime 13.3 LTS 以降用の Databricks Connect について説明します。
この記事では、Scala プラグインにより Databricks Connect for Scala と IntelliJ IDEA を使用する方法について説明します。 Databricks Connect を使用すると、一般的な IDE、ノートブック サーバー、その他のカスタム アプリケーションを Azure Databricks クラスターに接続できます。 「Databricks Connect とは」を参照してください。
Note
Databricks Connect の使用を開始する前に、Databricks Connect クライアントを設定する必要があります。
Scala プラグインで Databricks Connect と IntelliJ IDEA を使用して、サンプル Scala sbt
プロジェクトを作成、実行、デバッグするには、次の手順に従ってください。 これらの手順は、IntelliJ IDEA Community Edition 2023.3.6 でテストされました。 別のバージョンまたはエディションの IntelliJ IDEA を使用する場合、次の手順は異なる場合があります。
Java Development Kit (JDK) がローカルにインストールされていることを確認してください。 Databricks では、ローカルの JDK のバージョンと、Azure Databricks クラスター上の JDK のバージョンを一致させることをお勧めしています。
IntelliJ IDEA を開始します。
[ファイル] > [新規作成] > [プロジェクト] の順にクリックしてください。
プロジェクトにわかりやすい名前を付けてください。
[場所] では、フォルダー アイコンをクリックし、画面上の指示を完了して、新しい Scala プロジェクトへのパスを指定してください。
[言語] では、[Scala] をクリックしてください。
[ビルド システム] では、[sbt] をクリックしてください。
[JDK] ドロップダウン リストで、クラスターの JDK バージョンと一致する開発マシンの JDK の既存のインストールを選択するか、[JDK のダウンロード] を選択し、画面上の指示に従って、クラスターの JDK のバージョンに一致する JDK をダウンロードしてください。
Note
クラスターの JDK バージョンより上または下の JDK インストールを選択すると、予期しない結果が発生したり、コードがまったく実行されないおそれがあります。
[sbt] ドロップダウン リストで、最新バージョンを選択してください。
[Scala] ドロップダウン リストで、クラスターの Scala バージョンと一致する Scala のバージョンを選択してください。
Note
クラスターの Scala バージョンより下または上の Scala バージョンを選択すると、予期しない結果が発生することや、コードがまったく実行されない場合があります。
[パッケージ プレフィックス] では、プロジェクトのソースのパッケージ プレフィックス値 (例:
org.example.application
) を入力してください。[サンプル コードの追加] ボックスにチェックが入っていることを確認してください。
Create をクリックしてください。
Databricks Connect パッケージを追加する: 新しい Scala プロジェクトを開いた状態で、[プロジェクト] ツール ウィンドウ ([表示] > [ツール ウィンドウ] > [プロジェクト]) で、
build.sbt
という名前のファイルを、project-name> target で開いてください。次のコードを
build.sbt
ファイルの末尾に追加してください。これは、Scala 用の Databricks Connect ライブラリの特定のバージョンに対するプロジェクトの依存関係を宣言します。libraryDependencies += "com.databricks" % "databricks-connect" % "14.3.1"
14.3.1
を、クラスターの Databricks Runtime バージョンと一致する Databricks Connect ライブラリのバージョンに置き換えてください。 Databricks Connect ライブラリのバージョン番号は、Maven 中央リポジトリで確認できます。[sbt の変更の読み込み] 通知アイコンをクリックして、Scala プロジェクトを新しいライブラリの場所と依存関係で更新してください。
IDE の下部にある
sbt
進行状況インジケーターが消えるまで待ちます。sbt
読み込みプロセスの完了には、数分かかる場合があります。コードを追加する: [プロジェクト] ツール ウィンドウで、project-name> src > main > scala で、
Main.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() } }
コードを実行する: リモートの Azure Databricks ワークスペースでターゲット クラスターを開始してください。
クラスターが起動したら、メイン メニューで [実行] > [‘Main’ の実行] の順にクリックしてください。
[実行] ツール ウィンドウ ([表示] > [ツール ウィンドウ] > [実行]) の [メイン] タブに、
samples.nyctaxi.trips
テーブルの最初の 5 行が表示されます。 すべての Scala コードはローカルで実行されますが、DataFrame 操作を含むすべての Scala コードは、リモートの Azure Databricks ワークスペース内のクラスターで実行され、実行応答がローカル呼び出し元に返されます。コードをデバッグする: まだ実行されていない場合は、リモートの Azure Databricks ワークスペースでターゲット クラスターを起動してください。
前のコードで、
df.limit(5).show()
の横にある余白をクリックしてブレークポイントを設定します。クラスターが起動したら、メイン メニューで [実行] > [‘Main’ のデバッグ] の順にクリックしてください。
[デバッグ] ツール ウィンドウ ([表示] > [ツール ウィンドウ] > [デバッグ]) の [コンソール] タブで、計算ツール ([式の評価]) アイコンをクリックしてください。
式
df.schema
を入力し、[評価] をクリックして DataFrame のスキーマを表示してください。[デバッグ] ツール ウィンドウのサイドバーで、緑色の矢印 ([プログラムの再開]) アイコンをクリックします。
[コンソール] ペインに、
samples.nyctaxi.trips
テーブルの最初の 5 行が表示されます。 すべての Scala コードはローカルで実行されますが、DataFrame 操作を含むすべての Scala コードは、リモートの Azure Databricks ワークスペース内のクラスターで実行され、実行応答がローカル呼び出し元に返されます。