Partager via


Tutoriel : Exécuter du code Scala sur le calcul sans serveur

Important

Databricks Connect pour Scala sur le calcul serverless est en version bêta.

Ce tutoriel fournit une vue d’ensemble du démarrage avec Databricks Connect pour Scala à l’aide de calcul sans serveur. Il explique comment créer une infrastructure de calcul compatible avec le catalogue Unity, soit un calcul classique en mode d’accès standard, soit un calcul sans serveur, avec un fichier JAR Scala compatible.

Conseil / Astuce

Pour créer un projet Scala entièrement configuré pour déployer et exécuter un fichier JAR sur un calcul serverless, vous pouvez utiliser des bundles de ressources Databricks. Consultez Générer un fichier JAR Scala à l’aide de bundles de ressources Databricks.

Spécifications

Votre environnement de développement local doit répondre aux exigences de Databricks Connect pour Scala. Consultez les exigences d’utilisation de Databricks Connect, qui incluent les éléments suivants :

  • Kit de développement Java (JDK)

  • sbt

  • Interface CLI Databricks configurée pour le calcul sans serveur :

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

Étape 1 : Créer un projet Scala

Commencez par créer un projet Scala. Lorsque vous y êtes invité, entrez un nom de projet, par exemple my-spark-app.

sbt new scala/scala-seed.g8

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

Avant de générer votre fichier JAR, vérifiez que la version du Kit de développement Java (JDK) et Scala que vous utilisez pour compiler votre code est prise en charge pour le calcul serverless. Pour plus d’informations sur cette exigence, consultez Définir les versions JDK et Scala.

Pour connaître 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 calcul d’accès dédié ou standard avec Databricks Runtime version 17 et l’environnement serverless version 4.

scalaVersion := "2.13.16"

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

Étape 3 : Ajouter Databricks Connect en tant que dépendance

Ajoutez Databricks Connect en tant que dépendance pour générer des fichiers JARs Scala. Pour plus d’informations, consultez dépendances Spark.

Dans le fichier de build de build.sbt votre projet Scala, ajoutez la référence suivante à 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"

Étape 4 : Ajouter 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. Vous pouvez également installer des bibliothèques dépendantes en tant que bibliothèques à portée de calcul ou dans votre environnement sans serveur. Pour plus d’informations, consultez Dépendances d’application.

Important

Supprimez toute dépendance sur Spark. Les API Spark sont fournies par Databricks Connect. Pour plus d’informations, consultez dépendances Spark.

Étape 5 : Ajouter du code Spark

Créez votre classe principale dans src/main/scala/example/DatabricksExample.scala. Pour plus d’informations sur l’utilisation de la session Spark dans votre code Scala, consultez Utiliser la session 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(" "))
  }
}

Étape 6 : Exécuter et générer votre code

Ensuite, exécutez votre code :

sbt run

Créez maintenant un project/assembly.sbt fichier avec la ligne suivante, puis générez le projet :

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

Étape 7 : Déployer votre fichier JAR

Déployez maintenant votre fichier JAR à l’aide d’une tâche JAR à partir de l’interface utilisateur ou à l’aide de Bundles de ressources Databricks :

Remarque

Le fichier JAR que vous avez créé est également pris en charge sur le calcul standard. Toutefois, pour le calcul standard, un administrateur doit ajouter les coordonnées Maven et les chemins des bibliothèques JAR à une liste d'autorisation. Consultez Bibliothèques de listes d’autorisation et scripts init sur le calcul en mode d’accès standard (anciennement mode d’accès partagé).

Databricks recommande d’ajouter un volume entier au lieu de JARs individuels à la liste autorisée.