チュートリアル: Classic コンピュートの IntelliJ IDEA から Code を実行する
この記事では、 IntelliJ IDEA と Scala プラグインを使用して Databricks Connect for Scala をすばやく使い始める方法を示します。
このチュートリアルでは、IntelliJ IDEAでプロジェクトを作成し、Databricks Runtime 13.3 LTS以降のDatabricks Connectをインストールし、 実行 簡単なコード コンピュート IntelliJ IDEAからDatabricksワークスペースで 。
必要条件
このチュートリアルを完了するには、以下の条件を満たす必要があります。
-
ワークスペース、ローカル環境、コンピュートは、ScalaのDatabricks Connectの要件を満たしています。「 Databricks Connect の使用要件」を参照してください。
-
クラスター ID が使用可能である必要があります。 クラスター ID を取得するには、ワークスペースでサイドバーの [コンピュート ] をクリックし、クラスターの名前をクリックします。 Web ブラウザーのアドレス バーで、URL の
clusters
とconfiguration
の間の文字列をコピーします。 -
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: Databricks 認証を構成する
このチュートリアルでは、Databricks OAuth ユーザー間 (U2M) 認証 と Databricks 構成プロファイル を使用して、Databricks ワークスペースで認証します。代わりに別の認証タイプを使用するには、「 接続プロパティの構成」を参照してください。
OAuth U2M認証を設定するには、以下のようにDatabricksCLIが必要になります。
- まだインストールされていない場合は、 次のように Databricks CLI をインストールします。
- Linux, macOS
- Windows
Homebrewを使用して、以下の2つのコマンドを実行してDatabricks CLIをインストールします。
brew tap databricks/tap
brew install databricks
winget、Chocolatey、または Windows Subsystem for Linux (WSL) を使用して、Databricks CLI をインストールできます。winget
、Chocolatey、または WSL を使用できない場合は、この手順をスキップし、代わりにコマンド プロンプトまたは PowerShell を使用してソースから Databricks CLI をインストールする必要があります。
Installing the Databricks CLI with Chocolatey is Experimental.
winget
を使用してDatabricks CLIをインストールするには、次の2つのコマンドを実行してから、コマンドプロンプトを再起動します。
winget search databricks
winget install Databricks.DatabricksCLI
Chocolateyを使用してDatabricks CLIをインストールするには、以下のコマンドを実行します。
choco install databricks-cli
WSLを使用してDatabricks CLIをインストールするには:
-
WSL を使用して
curl
をインストールし、zip
します。詳細については 情報、オペレーティング システムのドキュメントを参照してください。 -
WSLを使用して、以下のコマンドを実行してDatabricks CLIをインストールします。
Bashcurl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
-
次のコマンドを実行して、Databricks CLIがインストールされていることを確認します。これにより、Databricks CLIの現在のバージョンが表示されるので、そのバージョンが0.205.0以降であることを確認します。
Bashdatabricks -v
databricks
を実行しても command not found: databricks
などのエラーが発生する場合、または databricks -v
を実行してバージョン番号が 0.18 以下である場合は、マシンが正しいバージョンの Databricks CLI 実行可能ファイルを見つけることができないことを意味します。これを修正するには、「 CLI インストールの確認」を参照してください。
次のように、OAuth U2M認証を開始します。
-
Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、ローカルで OAuth トークン管理を開始します。
次のコマンドで、
<workspace-url>
をhttps://dbc-a1b2345c-d6e7.cloud.databricks.com
のような Databricks ワークスペース インスタンスの URL に置き換えます。Bashdatabricks auth login --configure-cluster --host <workspace-url>
-
Databricks CLI では、入力した情報を Databricks 構成プロファイルとして保存するように求められます。
Enter
を押して、提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、入力した情報で上書きされます。プロファイルを使用して、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。既存のプロファイルの一覧を取得するには、別のターミナルまたはコマンド プロンプトで、Databricks CLI を使用してコマンド
databricks auth profiles
を実行します。特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>
を実行します。 -
Webブラウザで、画面の指示に従ってDatabricksワークスペースにログインします。
-
ターミナル プロンプトまたはコマンド プロンプトに表示される使用可能なクラスターの一覧で、上方向キーと下方向キーを使用してワークスペース内のターゲット クラスター Databricks を選択し、
Enter
キーを押します。 クラスターの表示名の任意の部分を入力して、使用可能なクラスターの一覧をフィルター処理することもできます。 -
プロファイルの現在の 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: プロジェクトを作成する
-
IntelliJ IDEAを起動します。
-
メインメニューで、[ ファイル]>[新しい>プロジェクト ]をクリックします。
-
プロジェクトに意味のある 名前 を付けます。
-
[場所] で、フォルダー アイコンをクリックし、画面上の指示に従って、新しい Scala プロジェクトへのパスを指定します。
-
[言語] で [ Scala ] をクリックします。
-
[ビルドシステム] で [ sbt ] をクリックします。
-
[JDK ] ドロップダウンリストで、クラスターの JDK バージョンと一致する開発マシン上の JDK の既存のインストールを選択するか、[ JDK のダウンロード ] を選択し、画面の指示に従ってクラスター上の JDK バージョンと一致する JDK をダウンロードします。要件を参照してください。
クラスターで JDK バージョンより上または下の JDK インストールを選択すると、予期しない結果が生じたり、コードがまったく実行されなかったりする可能性があります。
-
sbt ドロップダウン リストで、最新バージョンを選択します。
-
Scala ドロップダウンリストで、クラスターのScalaバージョンと一致するScalaのバージョンを選択します。要件を参照してください。
クラスターで Scala バージョンより下または上の Scala バージョンを選択すると、予期しない結果が生じたり、コードがまったく実行されなかったりする可能性があります。
-
Scala の横にある Download ソース ボックスがオンになっていることを確認します。
-
[パッケージプレフィックス] に、プロジェクトのソースのパッケージプレフィックス値 (例:
org.example.application
) を入力します。 -
[ サンプルコードの追加 ] ボックスがオンになっていることを確認します。
-
作成 をクリックします。
手順 3: Databricks Connect パッケージを追加する
-
新しいScalaプロジェクトを開いた状態で、[ プロジェクト ] ツールウィンドウ ([ プロジェクト] Windows >> ツールの表示 ) で、 ターゲットの project-name >
build.sbt
という名前のファイルを開きます。 -
ファイルの末尾に次のコードを追加します。これは、
build.sbt
のDatabricks Connect ライブラリの特定のバージョンに対するプロジェクトの依存関係を宣言し、クラスターのScala Databricks Runtimeバージョンと互換性があります。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 に対して直接コンパイルします。
-
Load sbt changes notification アイコンをクリックして、Scala プロジェクトを新しいライブラリの場所と依存関係で更新します。
-
IDE の下部にある
sbt
進行状況インジケーターが消えるまで待ちます。sbt
ロード・プロセスが完了するまでに数分かかる場合があります。
ステップ 4: コードを追加する
-
プロジェクト ツールウィンドウで、 [プロジェクト名] > src > main > scala にある
Main.scala
という名前のファイルを開きます。 -
ファイル内の既存のコードを次のコードに置き換えてから、構成プロファイルの名前に応じてファイルを保存します。
手順 1 の設定プロファイルの名前が
DEFAULT
の場合は、ファイル内の既存のコードを次のコードに置き換えて、ファイルを保存します。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()
}
}手順 1 の設定プロファイルの名前が
DEFAULT
でない場合は、ファイル内の既存のコードを次のコードに置き換えます。プレースホルダ<profile-name>
を手順 1 の設定プロファイルの名前に置き換えて、ファイルを保存します。Scalapackage 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 オプションを構成する
-
build.sbt
が配置されている IntelliJ の現在のディレクトリをインポートします。 -
IntelliJ で Java 17 を選択します。 [ファイル] > [プロジェクト構造] > [SDK] に移動します。
-
src/main/scala/com/examples/Main.scala
を開きます。 -
VM オプションを追加するには、メインの構成に移動します。
-
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: コードを実行する
- リモートのDatabricksワークスペースでターゲット・クラスターを開始します。
- クラスターが開始されたら、メイン メニューで [実行] > [実行 'Main] をクリックします。
- 実行 ツールウィンドウ ( View > Tool Windows > 実行 ) の メイン タブに、
samples.nyctaxi.trips
テーブルの最初の 5 行が表示されます。
ステップ 7: コードをデバッグする
-
ターゲット クラスターがまだ実行されている状態で、上記のコードで
df.limit(5).show()
の横にある余白をクリックしてブレークポイントを設定します。 -
メイン メニューで、 [実行] > ['Main' のデバッグ] を クリックします。 デバッグ ツール ウィンドウ ( [表示] > [ツールWindows > [デバッグ] ) の [ コンソール ] タブで、計算機 ( [式の評価 ]) アイコンをクリックします。
-
式
df.schema
を入力します。 -
「評価」 をクリックすると、DataFrame のスキーマが表示されます。
-
デバッグ ツール ウィンドウのサイドバーで、緑色の矢印 ( プログラムの再開 ) アイコンをクリックします。
samples.nyctaxi.trips
テーブルの最初の 5 行が コンソール ペインに表示されます。