IntelliJ IDEA と Databricks Connect for Scala の併用
この記事では、Databricks Runtime13.3LTLTS以降のDatabricks Connectについて説明します。
この記事では、Databricks Connect for Scala と IntelliJ IDEA を Scala プラグインと共に使用する方法について説明します。 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の異なるバージョンまたはエディションを使用する場合、次の手順が異なる場合があります。
-
Java Development Kit (JDK) がローカルにインストールされていることを確認します。 Databricks では、ローカル JDK のバージョンを Databricks クラスターの JDK のバージョンと一致させることをお勧めします。
-
IntelliJ IDEAを起動します。
-
[ファイル] > [新しい > プロジェクト ] をクリックします。
-
プロジェクトに意味のある 名前を付け ます。
-
[ Location ] でフォルダアイコンをクリックし、画面の指示に従って新しい Scala プロジェクトへのパスを指定します。
-
[言語] で [ Scala ] をクリックします。
-
Build system で sbt をクリック。
-
[JDK ] ドロップダウンリストで、クラスターの JDK バージョンと一致する開発マシン上の JDK の既存のインストールを選択するか、[ JDK のダウンロード ] を選択し、画面の指示に従ってクラスター上の JDK バージョンと一致する JDK をダウンロードします。バージョン情報については、 要件を参照してください。
クラスターで JDK バージョンより上または下の JDK インストールを選択すると、予期しない結果が生じたり、コードがまったく実行されなかったりする可能性があります。
-
sbt ドロップダウンリストで、最新バージョンを選択する。
-
Scala ドロップダウンリストで、クラスターのScalaバージョンと一致するScalaのバージョンを選択します。バージョン情報については、 要件を参照してください。
クラスターで Scala バージョンより下または上の Scala バージョンを選択すると、予期しない結果が生じたり、コードがまったく実行されなかったりする可能性があります。
-
[Package prefix ] に、プロジェクトのソースのパッケージプレフィックス値 (
org.example.application
など) を入力します。 -
[ サンプル コードを追加 ] ボックスがオンになっていることを確認します。
-
作成 をクリックします。
-
Databricks Connect パッケージを追加する: 新しい Scala プロジェクトを開いた状態で、 Project ツール ウィンドウ ( [View (表示)] > [Tool Windows > Project ] (プロジェクト) ) で、 project-name > target の
build.sbt
という名前のファイルを開きます。 -
ファイルの末尾に次のコードを追加します。これは、
build.sbt
Databricks ConnectScalaのDatabricks Runtime ライブラリの特定のバージョンに対するプロジェクトの依存関係を宣言し、クラスターの バージョンと互換性があります。libraryDependencies += "com.databricks" % "databricks-connect" % "14.3.1"
を、クラスターの バージョンと一致する
14.3.1
Databricks Connectライブラリのバージョンに置き換えます。Databricks Runtimeたとえば、Databricks Connect 14.3.1 は Databricks Runtime 14.3 LTS と一致します。 Databricks Connect ライブラリのバージョン番号は、 Maven 中央リポジトリで確認できます。 -
Load sbt changes notification アイコンをクリックして、新しいライブラリの場所と依存関係で Scala プロジェクトを更新するよ。
-
IDE の下部にある
sbt
進行状況インジケータが消えるまで待ちます。sbt
ロード・プロセスが完了するまでに数分かかる場合があります。 -
コードを追加する: プロジェクト ツールウィンドウで、 プロジェクト名 > src > main > scala にある
Main.scala
という名前のファイルを開きます。 -
ファイル内の既存のコードを次のコードに置き換えて、ファイルを保存します。
Scalapackage 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()
}
} -
コードの実行: リモート Databricks ワークスペースでターゲット クラスターを開始します。
-
クラスターが起動したら、メインメニューで [実行] > [‘main’ を実行] をクリックします。
-
実行 ツールウィンドウ( View > Tool Windows > 実行 ) のメインタブに 、
samples.nyctaxi.trips
テーブルの最初の5行が表示されます。すべてのScala コードはローカルで実行されますが、リモートScala DataFrameワークスペースのクラスターで実行されるDatabricks 操作と実行応答を含むすべての コードは、ローカルの呼び出し元に送り返されます。 -
コードをデバッグする: リモート Databricks ワークスペースでターゲット クラスターを開始します (まだ実行されていない場合)。
-
すぐ前のコードでは
df.limit(5).show()
の横のガターをクリックしてブレークポイントを設定します。 -
クラスターが開始されたら、メイン メニューで [実行] > [デバッグ 'Main' ] をクリックします。
-
デバッグ ・ツール・ウィンドウ ( 「ビュー」>「ツール」Windows >デバッグ ) の 「コンソール 」タブで、計算機 ( 式の評価 ) アイコンをクリックします。
-
式
df.schema
を入力し、[ 評価 ] をクリックして DataFrame のスキーマを表示します。 -
[デバッグ] ツールウィンドウのサイドバーで、緑色の矢印( [プログラムの再開] )アイコンをクリックします。
-
コンソール ウィンドウに、
samples.nyctaxi.trips
テーブルの最初の 5 行が表示されます。すべてのScala コードはローカルで実行されますが、リモートScala DataFrameワークスペースのクラスターで実行されるDatabricks 操作と実行応答を含むすべての コードは、ローカルの呼び出し元に送り返されます。