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

Databricks Connect for Scala

注記

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

この記事では、 IntelliJ IDEAScala プラグインで Scala を使用して、Databricks Connect をすぐに使い始める方法について説明します。

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が必要になります。

  1. まだインストールされていない場合は、次のように Databricks CLI をインストールします。

Use Homebrew to install the Databricks CLI by running the following two commands:

Bash
brew tap databricks/tap
brew install databricks
  1. 次のコマンドを実行して、Databricks CLIがインストールされていることを確認します。これにより、Databricks CLIの現在のバージョンが表示されるので、そのバージョンが0.205.0以降であることを確認します。

    Bash
    databricks -v
注記

databricksを実行しても command not found: databricksなどのエラーが表示される場合、または databricks -v を実行してバージョン番号 0.18 以下がリストされている場合は、マシンで Databricks CLI 実行可能ファイルの正しいバージョンが見つからないことを意味します。これを修正するには、 CLI インストールの確認を参照してください。

次のように、OAuth U2M認証を開始します。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。

    次のコマンドで、 <workspace-url> を Databricks ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    Bash
    databricks auth login --configure-cluster --host <workspace-url>
  2. Databricks CLI では、入力した情報を Databricks 構成プロファイルとして保存するように求められます。 Enter キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、入力した情報で上書きされます。 プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトでDatabricks CLIを使用してコマンドdatabricks auth profilesを実行します。特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>を実行します。

  3. Webブラウザで、画面の指示に従ってDatabricksワークスペースにログインします。

  4. ターミナルまたはコマンドプロンプトに表示される利用可能なクラスターのリストで、上矢印キーと下矢印キーを使用してワークスペース内の対象のDatabricksクラスターを選択し、Enterを押します。クラスターの表示名の一部を入力して、利用可能なクラスターのリストを絞り込むこともできます。

  5. 以下のいずれかのコマンドを実行して、プロファイルの現在の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: プロジェクトを作成する

  1. IntelliJ IDEAを起動します。

  2. メイン メニューの [ファイル] > [新しい > プロジェクト ] をクリックします。

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

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

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

  6. Build systemsbt をクリック。

  7. [JDK ] ドロップダウンリストで、クラスターの JDK バージョンと一致する開発マシン上の JDK の既存のインストールを選択するか、[ JDK のダウンロード ] を選択し、画面の指示に従ってクラスター上の JDK バージョンと一致する JDK をダウンロードします。(_)(/dev-tools/databricks-connect/Scala/install.md#requirements) を参照してください。

注記

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

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

  2. Scala ドロップダウンリストで、クラスターのScalaバージョンと一致するScalaのバージョンを選択します。(_)(/dev-tools/databricks-connect/Scala/install.md#requirements) を参照してください。

注記

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

  1. Scala の横にある 「ダウンロードソース 」ボックスにチェックが入っていることを確認します。

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

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

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

IntelliJ IDEA プロジェクトを作成する

手順 3: Databricks Connect パッケージを追加する

  1. 新しい Scala プロジェクトを開いた状態で、 Project ツールウィンドウ ( [View] (表示) > Tool Windows] (ツールウィンドウ) > Project ) で、 project-name > target にある build.sbtという名前のファイルを開きます。

  2. ファイルの末尾に次のコードを追加します。これは、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 中央リポジトリで確認できます。

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

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

Databricks Connectパッケージをインストールする

ステップ4: コードを追加する

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

  2. ファイル内の既存のコードを次のコードに置き換え、設定プロファイルの名前に応じてファイルを保存します。

    ステップ1の構成プロファイルが DEFAULT という名前の場合は、ファイル内の既存のコードを次のコードに置き換えて、ファイルを保存します。

    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()
    }
    }

    ステップ 1 の構成プロファイルに DEFAULTという名前が付けられていない場合は、ファイル内の既存のコードを次のコードで置き換えます。 プレースホルダー <profile-name> を手順 1 の構成プロファイルの名前に置き換え、ファイルを保存します。

    Scala
    package 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: コードを実行する

  1. リモートのDatabricksワークスペースでターゲット・クラスターを開始します。
  2. クラスターが起動したら、メインメニューで [実行] > [‘main’ を実行] をクリックします。
  3. 実行 ツールウィンドウ( View > Tool Windows > 実行 ) のメインタブにsamples.nyctaxi.tripsテーブルの最初の5行が表示されます。

ステップ6: コードをデバッグします

  1. ターゲット クラスターがまだ実行されている状態で、上記のコードで df.limit(5).show() の横にある余白をクリックしてブレークポイントを設定します。
  2. メインメニューで、 [実行] > [‘main’ をデバッグ] をクリックします。
  3. デバッグ ・ツール・ウィンドウ ( 「ビュー」>「ツール」Windows >「デバッグ 」)の「 コンソール 」タブで、計算機 ( 「式の評価 」) アイコンをクリックします。
  4. df.schema を入力し、[ 評価 ] をクリックして DataFrame のスキーマを表示します。
  5. [デバッグ] ツールウィンドウのサイドバーで、緑色の矢印( [プログラムの再開] )アイコンをクリックします。
  6. コンソール ウィンドウに、samples.nyctaxi.trips テーブルの最初の 5 行が表示されます。

IntelliJ IDEA プロジェクトのデバッグ

次のステップ

Databricks Connectの詳細については、以下の記事を参照してください。