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

Databricks Connect for Scala

注記

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

Databricks ConnectIDEsIntelliJ IDEAを使用すると、 、ノートブックサーバー、その他のカスタムアプリケーションなどの一般的なDatabricks を クラスターに接続できます。「Databricks Connect とは」を参照してください。

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

チュートリアル

次のチュートリアルでは、 でプロジェクトを作成し、IntelliJ IDEA Databricks ConnectDatabricks Runtime13.3LTS 以降の をインストールし、Databricks から ワークスペースのコンピュートで簡単なコードを実行します。IntelliJ IDEAその他の情報と例については、「 次の手順」を参照してください。

必要条件

このチュートリアルを完了するには、以下の条件を満たす必要があります。

  • ターゲットDatabricksワークスペースとクラスターは、Databricks Connectのコンピュート構成の要件を満たしている必要があります。

  • クラスタリング ID が使用可能である必要があります。 クラスタリング ID を取得するには、ワークスペースでサイドバーの [コンピュート ] をクリックし、クラスタリングの名前をクリックします。 Web ブラウザーのアドレス バーで、URL の clustersconfiguration の間の文字列をコピーします。

  • 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 をインストールします。

    タブ :::タブ-item[Linux, macOS] Homebrew を使用して、次の2つのコマンドを実行して Databricks CLI をインストールします。

    Bash
    brew tap databricks/tap
    brew install databricks

    :::

    タブ-item[Windows] wingetChocolatey、または Windows Subsystem for Linux (WSL) を使用して、Databricks CLIをインストールできます。winget、Chocolatey、または WSL を使用できない場合は、この手順をスキップし、代わりにコマンド プロンプトまたは PowerShell を使用してソースから Databricks CLI をインストールする必要があります。

注記

Chocolatey を使用した Databricks CLI のインストールは 試験段階です

wingetを使用してDatabricks CLIをインストールするには、次の2つのコマンドを実行してから、コマンドプロンプトを再起動します。

Bash
winget search databricks
winget install Databricks.DatabricksCLI

Chocolateyを使用してDatabricks CLIをインストールするには、以下のコマンドを実行します。

Bash
choco install databricks-cli

WSLを使用してDatabricks CLIをインストールするには:

  1. WSL を使用して curlzip をインストールします。詳細については、オペレーティングシステムのドキュメントを参照してください。

  2. WSLを使用して、以下のコマンドを実行してDatabricks CLIをインストールします。

    Bash
    curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh

::: :::: 2. 次のコマンドを実行して、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 をダウンロードします。「要件」を参照してください。

注記

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

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

  2. Scala ドロップダウンリストで、クラスターのScalaバージョンと一致するScalaのバージョンを選択します。「要件」を参照してください。

注記

クラスターで 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 Connect ライブラリの特定のバージョンに対するプロジェクトの依存関係を宣言し、クラスタリングのScala 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. メイン メニューで、[ Run (実行)] > [Debug 'Main' ('Main' のデバッグ)] をクリックします。
  3. デバッグ ・ツール・ウィンドウ ( 「ビュー」>「ツール」Windows >「デバッグ 」)の「 コンソール 」タブで、計算機 ( 「式の評価 」) アイコンをクリックします。
  4. df.schema を入力し、[ 評価 ] をクリックして DataFrame のスキーマを表示します。
  5. デバッグ ツールウィンドウのサイドバーで、緑色の矢印( プログラムの再開 )アイコンをクリックします。
  6. コンソール ウィンドウに、samples.nyctaxi.trips テーブルの最初の 5 行が表示されます。

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

次のステップ

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