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

チュートリアル: Classic コンピュートの IntelliJ IDEA から Code を実行する

この記事では、 IntelliJ IDEAScala プラグインを使用して 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 の clustersconfiguration の間の文字列をコピーします。

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

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

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

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>https://dbc-a1b2345c-d6e7.cloud.databricks.comのような Databricks ワークスペース インスタンスの URL に置き換えます。

    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. [場所] で、フォルダー アイコンをクリックし、画面上の指示に従って、新しい Scala プロジェクトへのパスを指定します。

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

  6. [ビルドシステム] で [ sbt ] をクリックします。

  7. [JDK ] ドロップダウンリストで、クラスターの JDK バージョンと一致する開発マシン上の JDK の既存のインストールを選択するか、[ JDK のダウンロード ] を選択し、画面の指示に従ってクラスター上の JDK バージョンと一致する JDK をダウンロードします。要件を参照してください。

注記

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

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

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

注記

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

  1. Scala の横にある Download ソース ボックスがオンになっていることを確認します。

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

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

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

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

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

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

  2. ファイルの末尾に次のコードを追加します。これは、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 に対して直接コンパイルします。

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

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

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

ステップ 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: VM オプションを構成する

  1. build.sbtが配置されている IntelliJ の現在のディレクトリをインポートします。

  2. IntelliJ で Java 17 を選択します。 [ファイル] > [プロジェクト構造] > [SDK] に移動します。

  3. src/main/scala/com/examples/Main.scalaを開きます。

  4. VM オプションを追加するには、メインの構成に移動します。

    メイン編集

    VMオプションを追加する

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

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

ステップ 7: コードをデバッグする

  1. ターゲット クラスターがまだ実行されている状態で、上記のコードで df.limit(5).show() の横にある余白をクリックしてブレークポイントを設定します。

  2. メイン メニューで、 [実行] > ['Main' のデバッグ] を クリックします。 デバッグ ツール ウィンドウ ( [表示] > [ツールWindows > [デバッグ] ) の [ コンソール ] タブで、計算機 ( [式の評価 ]) アイコンをクリックします。

  3. df.schemaを入力します。

  4. 「評価」 をクリックすると、DataFrame のスキーマが表示されます。

  5. デバッグ ツール ウィンドウのサイドバーで、緑色の矢印 ( プログラムの再開 ) アイコンをクリックします。samples.nyctaxi.tripsテーブルの最初の 5 行が コンソール ペインに表示されます。

    IntelliJ IDEA プロジェクトをデバッグする