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

チュートリアル: サーバレスコンピュートでScalaコードを実行

備考

ベータ版

サーバレス コンピュートのDatabricks Connect for Scalaはベータ版です。

このチュートリアルでは、サーバーレス コンピュートを使用してDatabricks Connect for Scalaを開始する方法の概要を提供します。 Unity カタログ対応のコンピュート (標準アクセス モードのクラシック コンピュートまたはサーバーレス コンピュート) と互換性のあるScala JARファイルを構築する手順を説明します。

ヒント

サーバーレス コンピュートにJARデプロイして実行するように完全に構成されたScalaプロジェクトを作成するには、 Databricksアセット バンドルを使用できます。 「Databricks アセット バンドルを使用して Scala JAR を構築する」を参照してください。

要件

ローカル開発環境は、Databricks Connect for Scala の要件を満たしている必要があります。次の内容を含むDatabricks Connect の使用要件を参照してください。

  • Java開発キット(JDK)

  • SBT

  • Databricks CLI 、サーバレス コンピュート用に構成:

    databricks auth login --configure-serverless --host <workspace-url>

ステップ 1: Scalaプロジェクトを作成する

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

Bash
sbt new scala/scala-seed.g8

ステップ 2: Scalaと JDK のバージョンを更新する

JARビルドする前に、コードのコンパイルに使用するJava Development Kit (JDK) とScalaのバージョンがサーバレス コンピュートでサポートされていることを確認してください。 この要件の詳細については、 JDK および Scala のバージョンを参照してください。

互換性のあるバージョンについては、バージョン サポート マトリックスを参照してください。

次の構成はScala 2.13 および JDK 17 用であり、 Databricks Runtimeバージョン 17 およびサーバーレス環境バージョン 4 による専用または標準アクセス コンピュートと互換性があります。

scalaVersion := "2.13.16"

javacOptions ++= Seq("-source", "17", "-target", "17")
scalacOptions ++= Seq("-release", "17")

ステップ 3: Databricks Connect依存関係として追加します

Scala JAR をビルドするための依存関係として Databricks Connect を追加します。詳細については、 「依存関係」を参照してください。

Scala プロジェクトのbuild.sbtビルド ファイルに、Databricks Connect への次の参照を追加します。

scalaVersion := "2.13.16"
libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.+"

// To run with new JVM options, a fork is required, otherwise it uses the same options as the sbt process.
fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

ステップ 4: 他の依存関係を追加する

Databricks では、アプリケーションとすべての依存ライブラリを 1 つの JAR ファイル ( über JAR または fat JAR とも呼ばれる) にパッケージ化することを推奨しています。あるいは、依存ライブラリをコンピュート スコープのライブラリまたはサーバレス環境にインストールすることもできます。 詳細については、 「単一のJARとしてパッケージ化する」を参照してください。

重要

Spark への依存関係をすべて削除します。Spark APIs Databricks Connectによって提供されます。 詳細については、 Spark依存関係」を参照してください。

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

src/main/scala/example/DatabricksExample.scalaにメインクラスを作成します。Scala コードで Spark セッションを使用する方法の詳細については、 「コードで Spark セッションを使用する」を参照してください。

Scala
package com.examples

import com.databricks.connect.DatabricksSession
import org.apache.spark.sql.{SparkSession}

object SparkJar {
def main(args: Array[String]): Unit = {
val spark: SparkSession = DatabricksSession.builder()
.validateSession(false)
.addCompiledArtifacts(SparkJar.getClass.getProtectionDomain.getCodeSource.getLocation.toURI)
.getOrCreate()

println(spark.version)
println(spark.range(10).limit(3).collect().mkString(" "))
}
}

ステップ 6: コードを実行してビルドする

次に、コードを実行します。

Bash
sbt run

次に、次の行を含むproject/assembly.sbtファイルを作成し、プロジェクトをビルドします。

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")
Bash
sbt assembly

ステップ 7: JARデプロイする

次に、UI から JAR タスクを使用するか、Databricks アセット バンドルを使用して JAR ファイルをデプロイします。

注記

作成したJAR標準のコンピュートでもサポートされています。 ただし、標準コンピュートの場合、管理者はJARライブラリのMaven座標とパスをホワイトリストに追加する必要があります。 標準アクセス モード (以前の共有アクセス モード) でのコンピュートに関する許可リスト ライブラリと init スクリプトを参照してください。

Databricks では、個々の JAR ではなくボリューム全体を許可リストに追加することをお勧めします。