Databricks Connect for Scala
この記事では、Databricks Runtime13.3LTLTS以降のDatabricks Connectについて説明します。
この記事では、 IntelliJ IDEA と Scala プラグインで Scala を使用して、Databricks Connect をすぐに使い始める方法について説明します。
- この記事の Python バージョンについては、「 Databricks Connect for Python」を参照してください。
- この記事の R バージョンについては、「 Databricks Connect for R」を参照してください。
Databricks ConnectIDEsIntelliJ IDEAを使用すると、 、ノートブックサーバー、その他のカスタムアプリケーションなどの一般的なDatabricks を クラスターに接続できます。「Databricks Connect とは」を参照してください。
チュートリアル
このチュートリアルをスキップして別の IDE を使用するには、「 次の手順」を参照してください。
必要条件
このチュートリアルを完了するには、以下の条件を満たす必要があります。
-
ターゲットDatabricksワークスペースとクラスターは、Databricks Connectのコンピュート構成の要件を満たしている必要があります。
-
クラスターIDを取得している必要があります。クラスターIDを取得するには、ワークスペースでサイドバーの [コンピュート] をクリックし、クラスターの名前を選択ます。Webブラウザーのアドレスバーで、URLの
clusters
からconfiguration
までの文字列をコピーします。 -
Java Development Kit (JDK) が開発マシンにインストールされています。 Databricks では、JDK インストールのバージョンを Databricks クラスターの 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
Use Homebrew to install the Databricks CLI by running the following two commands:
brew tap databricks/tap
brew install databricks
You can use winget, Chocolatey or Windows Subsystem for Linux (WSL) to install the Databricks CLI. If you cannot use winget
, Chocolatey, or WSL, you should skip this procedure and use the Command Prompt or PowerShell to install the Databricks CLI from source instead.
Installing the Databricks CLI with Chocolatey is Experimental.
To use winget
to install the Databricks CLI, run the following two commands, and then restart your Command Prompt:
winget search databricks
winget install Databricks.DatabricksCLI
To use Chocolatey to install the Databricks CLI, run the following command:
choco install databricks-cli
To use WSL to install the Databricks CLI:
-
Install
curl
andzip
through WSL. For more information, see your operating system’s documentation. -
Use WSL to install the Databricks CLI by running the following command:
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>
を Databricks ワークスペース インスタンスの URL に置き換えます (例:https://dbc-a1b2345c-d6e7.cloud.databricks.com
.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を起動します。
-
メイン メニューの [ファイル] > [新しい > プロジェクト ] をクリックします。
-
プロジェクトに意味のある 名前を付け ます。
-
[ Location ] でフォルダアイコンをクリックし、画面の指示に従って新しい Scala プロジェクトへのパスを指定します。
-
[言語] で [ Scala ] をクリックします。
-
Build system で sbt をクリック。
-
[JDK ] ドロップダウンリストで、クラスターの JDK バージョンと一致する開発マシン上の JDK の既存のインストールを選択するか、[ JDK のダウンロード ] を選択し、画面の指示に従ってクラスター上の JDK バージョンと一致する JDK をダウンロードします。(_)(/dev-tools/databricks-connect/Scala/install.md#requirements) を参照してください。
クラスターで JDK バージョンより上または下の JDK インストールを選択すると、予期しない結果が生じたり、コードがまったく実行されなかったりする可能性があります。
-
sbt ドロップダウンリストで、最新バージョンを選択する。
-
Scala ドロップダウンリストで、クラスターのScalaバージョンと一致するScalaのバージョンを選択します。(_)(/dev-tools/databricks-connect/Scala/install.md#requirements) を参照してください。
クラスターで Scala バージョンより下または上の Scala バージョンを選択すると、予期しない結果が生じたり、コードがまったく実行されなかったりする可能性があります。
-
「 Scala の横にある 「ダウンロードソース 」ボックスにチェックが入っていることを確認します。
-
[Package prefix ] に、プロジェクトのソースのパッケージプレフィックス値 (
org.example.application
など) を入力します。 -
[ サンプル コードを追加 ] ボックスがオンになっていることを確認します。
-
作成 をクリックします。
手順 3: 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
ロード・プロセスが完了するまでに数分かかる場合があります。
ステップ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: コードを実行する
- リモートのDatabricksワークスペースでターゲット・クラスターを開始します。
- クラスターが起動したら、メインメニューで [実行] > [‘main’ を実行] をクリックします。
- 実行 ツールウィンドウ( View > Tool Windows > 実行 ) のメインタブに 、
samples.nyctaxi.trips
テーブルの最初の5行が表示されます。
ステップ6: コードをデバッグします
- ターゲット クラスターがまだ実行されている状態で、上記のコードで
df.limit(5).show()
の横にある余白をクリックしてブレークポイントを設定します。 - メインメニューで、 [実行] > [‘main’ をデバッグ] をクリックします。
- デバッグ ・ツール・ウィンドウ ( 「ビュー」>「ツール」Windows >「デバッグ 」)の「 コンソール 」タブで、計算機 ( 「式の評価 」) アイコンをクリックします。
- 式
df.schema
を入力し、[ 評価 ] をクリックして DataFrame のスキーマを表示します。 - [デバッグ] ツールウィンドウのサイドバーで、緑色の矢印( [プログラムの再開] )アイコンをクリックします。
- コンソール ウィンドウに、
samples.nyctaxi.trips
テーブルの最初の 5 行が表示されます。
次のステップ
Databricks Connectの詳細については、以下の記事を参照してください。
-
OAuth U2M 以外の Databricks 認証の種類を使用するには、「 接続プロパティの構成」を参照してください。
-
その他の IDEsを使用するには、以下を参照してください。
-
その他の簡単なコード例については、「 Databricks Connect for Scala のコード例」を参照してください。
-
複雑なコードの例については、GitHubのサイトにあるDatabricks Connectのアプリケーション例を参照してください。具体的には以下のとおりです。
-
Databricks Connect for Databricks Runtime 12.2 LTS 以前から Databricks Connect for Databricks Runtime 13.3 LTS 以降に移行するには、「 Databricks Connect for Scala への移行」を参照してください。
-
トラブルシューティングと制限事項に関する情報も参照してください。