Important
サーバーレス コンピューティングの Databricks Connect for Scala は ベータ版です。
このチュートリアルでは、サーバーレス コンピューティングを使用して Scala 用 Databricks Connect を開始する方法の概要について説明します。 ここでは、Unity カタログ対応コンピューティング (標準アクセス モードまたはサーバーレス コンピューティングのクラシック コンピューティング) と互換性のある Scala JAR ファイルを構築する手順を示します。
ヒント
サーバーレス コンピューティングで JAR をデプロイして実行するように完全に構成された Scala プロジェクトを作成するには、Databricks アセット バンドルを使用できます。 Databricks アセット バンドルを使用した Scala JAR の構築を参照してください。
Requirements
ローカル開発環境は、Databricks Connect for Scala の要件を満たしている必要があります。 Databricks Connect の使用要件 (以下を含む) を参照してください。
Java Development Kit (JDK)
sbt
サーバーレス コンピューティング用に構成された Databricks CLI:
databricks auth login --configure-serverless --host <workspace-url>
手順 1: Scala プロジェクトを作成する
最初に Scala プロジェクトを作成します。 メッセージが表示されたら、プロジェクト名 ( my-spark-appなど) を入力します。
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 を追加します。 詳細については、「 Spark の依存関係」を参照してください。
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 または fat JAR とも呼ばれます) にパッケージ化することをお勧めします。 または、依存ライブラリを コンピューティング スコープ ライブラリとして、またはサーバーレス環境にインストールすることもできます。 詳細については、「 アプリケーションの依存関係」を参照してください。
Important
Spark への依存関係を削除します。 Spark API は Databricks Connect によって提供されます。 詳細については、「 Spark の依存関係」を参照してください。
手順 5: Spark コードを追加する
src/main/scala/example/DatabricksExample.scalaでメイン クラスを作成します。 Scala コードで Spark セッションを使用する方法の詳細については、「 Databricks Spark セッションの使用」を参照してください。
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: コードを実行してビルドする
次に、コードを実行します。
sbt run
次の行で project/assembly.sbt ファイルを作成し、プロジェクトをビルドします。
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")
sbt assembly
手順 7: JAR をデプロイする
次に、UI から JAR タスクを使用するか、Databricks アセット バンドルを使用して JAR ファイルをデプロイします。
注
作成した JAR は、標準コンピューティングでもサポートされます。 ただし、標準コンピューティングの場合、管理者は JAR ライブラリの Maven 座標とパスを許可リストに追加する必要があります。 標準アクセス モード (以前の共有アクセス モード) を使用したコンピューティングでの許可リスト ライブラリと init スクリプトを参照してください。
Databricks では、個々の JAR ではなくボリューム全体を許可リストに追加することをお勧めします。