Aller au contenu principal

Didacticiel : exécuter du code Scala sur un compute Serverless

info

Aperçu

Les jobs Serverless Scala et Java sont en aperçu public. Vous pouvez utiliser des tâches JAR pour déployer votre JAR. Consultez Gérer les aperçus Databricks si ce n'est pas déjà activé.

Ce tutoriel fournit un aperçu de la façon de start avec Databricks Connect pour Scala à l’aide du compute Serverless. Il explique comment créer un fichier JAR Scala compatible avec un compute compatible Unity Catalog (compute classique en mode d'accès standard ou compute Serverless).

astuce

Pour créer un projet Scala entièrement configuré pour déployer et exécuter un JAR sur un compute serverless, vous pouvez utiliser des Declarative Automation Bundles. Consultez Créer un JAR Scala à l’aide de Declarative Automation Bundles.

Exigences

Votre environnement de développement local doit satisfaire aux exigences de Databricks Connect pour Scala. Consultez les exigences d'utilisation de Databricks Connect, qui comprennent les éléments suivants :

  • Kit de développement Java (JDK)

  • sbt

  • Databricks CLI, configuré pour le compute Serverless :

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

Étape 1 : Créer un projet Scala

Créez d'abord un projet Scala. Lorsque vous y êtes invité, saisissez un nom de projet, par exemple, my-spark-app.

Bash
sbt new scala/scala-seed.g8

Étape 2 : Mettre à jour les versions de Scala et du JDK

Avant de créer votre JAR, assurez-vous que la version du kit de développement Java (JDK) et de Scala que vous utilisez pour compiler votre code est prise en charge pour le compute serverless. Pour plus de détails sur cette exigence, consultez Définir les versions du JDK et de Scala.

Pour les versions compatibles, consultez la matrice de prise en charge des versions.

La configuration suivante concerne Scala 2.13 et JDK 17, compatible avec le compute d’accès dédié ou standard avec Databricks Runtime version 17 et la version 4 de l’environnement serverless.

scalaVersion := "2.13.16"

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

Étape 3 : Ajouter Databricks Connect comme dépendance

Ajoutez Databricks Connect en tant que dépendance pour créer des JAR Scala. Pour plus d'informations, consultez les dépendances Spark.

Dans le fichier de build build.sbt de votre projet Scala, ajoutez la référence suivante à Databricks Connect.

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

// 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"

Étape 4 : ajoutez d'autres dépendances

Databricks recommande d'empaqueter votre application et toutes les bibliothèques dépendantes dans un seul fichier JAR, également appelé JAR über ou fat JAR . Alternativement, vous pouvez installer des bibliothèques dépendantes comme bibliothèques à portée compute ou dans votre environnement Serverless. Pour plus d'informations, consultez Dépendances d'application.

important

Supprimez toute dépendance vis-à-vis de Spark. Les Spark API sont fournies par Databricks Connect. Pour plus d’informations, consultez Dépendances Spark.

Étape 5 : Ajouter le code Spark

Créez votre classe principale dans src/main/scala/example/DatabricksExample.scala. Pour plus de détails sur l'utilisation de la session Spark dans votre code Scala, consultez Utiliser la session Spark Databricks.

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(" "))
}
}

Étape 6 : exécuter et compiler votre code

Ensuite, exécutez votre code :

Bash
sbt run

Maintenant, créez un fichier project/assembly.sbt avec la ligne suivante, puis compilez le projet :

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

Étape 7 : Déployez votre JAR

Maintenant, déployez votre fichier JAR à l'aide d'une tâche JAR depuis l'interface utilisateur ou à l'aide de bundles d'automatisation déclaratifs :

remarque

Le JAR que vous avez créé est également pris en charge sur un compute standard. Cependant, pour un compute standard, un administrateur doit ajouter les coordonnées Maven et les chemins d'accès des bibliothèques JAR à une liste d'autorisations. Voir Autoriser les bibliothèques et les scripts d’initialisation sur un compute en mode d’accès standard (anciennement mode d’accès partagé).

Databricks vous recommande d'ajouter un volume entier au lieu de JAR individuels à la liste d'autorisation.