次の方法で共有


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

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 ではなくボリューム全体を許可リストに追加することをお勧めします。