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

サーバレス コンピュートでScalaとJava JAR を作成して実行する

備考

ベータ版

ScalaとJava Job はベータ版です。 JAR タスクを使用して JAR をデプロイできます。まだ有効になっていない場合は、 「Databricks プレビューの管理」を参照してください。

Java アーカイブ(JAR) は、Java または Scala コードを 1 つのファイルにパッケージ化します。この記事では、 Sparkコードを使用してJARを作成し、それをサーバレスコンピュートにLakeFlow Jobとしてデプロイする方法を示します。

ヒント

自動デプロイと継続的インテグレーション ワークフローの場合は、Databricks アセット バンドルを使用して、事前に構成されたビルドおよびデプロイ設定を含むテンプレートからプロジェクトを作成します。Databricksアセット バンドルを使用してScala JARをビルドする」およびJARファイルをUnity Catalogにアップロードするバンドル」を参照してください。 この記事では、JAR がサーバレス コンピュートでどのように動作するかをデプロイするための手動のアプローチ、または学習について説明します。

要件

ローカル開発環境には以下が必要です。

  • sbt 1.11.7 以上 (Scala JAR の場合)
  • Maven 3.9.0 以上(Java JAR の場合)
  • サーバー環境に一致する JDK、 Scala 、およびDatabricks Connectバージョン (この例では、JDK 17、 Scala 2.13.16、およびDatabricks Connect 17.0.1 を使用しています)

ステップ 1. JARを構築する

  1. 新しい Scala プロジェクトを作成するには、次のコマンドを実行します。

    Bash
    sbt new scala/scala-seed.g8

    プロンプトが表示されたら、プロジェクト名(例: my-spark-appを入力します。

  2. build.sbtファイルの内容を次の内容に置き換えます。

    scalaVersion := "2.13.16"
    libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.1"
    // other dependencies go here...

    // to run with new jvm options, a fork is required otherwise it uses same options as sbt process
    fork := true
    javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"
  3. project/assembly.sbtファイルを編集または作成し、次の行を追加します。

    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")
  4. src/main/scala/example/DatabricksExample.scalaにメインクラスを作成します:

    Scala
    package com.examples

    import org.apache.spark.sql.SparkSession

    object SparkJar {
    def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().getOrCreate()

    // Prints the arguments to the class, which
    // are job parameters when run as a job:
    println(args.mkString(", "))

    // Shows using spark:
    println(spark.version)
    println(spark.range(10).limit(3).collect().mkString(" "))
    }
    }
  5. JAR ファイルをビルドするには、次のコマンドを実行します。

    Bash
    sbt assembly

ステップ 2. JARを実行するジョブを作成する

  1. ワークスペースで、サイドバーの ワークフローアイコン。 ジョブ & パイプライン をクリックします。

  2. 作成 をクリックし、 ジョブ をクリックします。

    タスク タブは、空のタスクペインとともに表示されます。

注記

LakeflowジョブUIオン の場合は、 JAR タイルをクリックして最初のタスクを構成します。 JAR タイルが使用できない場合は、「 別のタスク・タイプの追加 」をクリックして「 JAR」 を検索します。

  1. オプションで、ジョブの名前 (デフォルトは New Job <date-time> ) をジョブ名に置き換えます。

  2. タスク に、タスクの名前を入力します (例: JAR_example)。

  3. 必要に応じて、「 タイプ 」ドロップダウン・メニューから「 JAR 」を選択します。

  4. メインクラス には、Jar のパッケージとクラスを入力します。上記の例に従った場合は、 com.examples.SparkJarと入力します。

  5. コンピュート の場合は、 「サーバレス」 を選択します。

  6. サーバーレス環境を構成します。

    1. 環境を選択してクリック鉛筆アイコン。 編集 して設定します。
    2. 環境バージョン として 「4- Scala -preview」 を選択します。
    3. JARファイルをファイルセレクターにドラッグアンドドロップして追加するか、 Unity Catalogボリュームまたはワークスペースの場所から参照して選択します。
  7. この例では、 パラメーター["Hello", "World!"]と入力します。

  8. タスクを作成 」をクリックします。

ステップ 3: ジョブを実行し、ジョブ実行の詳細を表示します

「今すぐ実行」ボタンをクリックしてワークフローを実行します。 実行の詳細 を表示するには、 トリガーされた実行 ポップアップで 実行の表示 をクリックするか、ジョブの実行ビューで実行の 開始時刻 列のリンクをクリックします。

実行が完了すると、タスクに渡された引数を含む出力が 出力 パネルに表示されます。

次のステップ