Aller au contenu principal

Créez un JAR Scala à l'aide des Declarative Automation Bundles

Cet article décrit comment construire, déployer et exécuter un JAR Scala avec les Declarative Automation Bundles. Pour des informations sur les bundles, consultez Que sont les Declarative Automation Bundles ?.

Pour un exemple de configuration qui crée un Java JAR et l'upload vers Unity Catalog, voir Bundle qui upload un fichier JAR vers Unity Catalog.

Exigences

Ce didacticiel exige que votre workspace Databricks réponde aux exigences suivantes :

De plus, votre environnement de développement local doit avoir les éléments suivants installés :

Étape 1 : Créez le bundle

Tout d'abord, créez le bundle à l'aide de la commande bundle init et du Template de bundle de projet Scala.

Le Template de bundle JAR Scala crée un bundle qui construit un JAR, l'upload vers le volume spécifié, et définit un Job avec une tâche Spark comportant le JAR qui s'exécute sur le compute serverless. Le Scala dans le projet de template définit une UDF qui applique une transformation simple à un DataFrame d'exemple et affiche les résultats. La source du modèle se trouve dans le repository d'exemples de bundles.

  1. Exécutez la commande suivante dans une fenêtre de terminal sur votre machine de développement locale. Il demande la valeur de certains champs obligatoires.

    Bash
    databricks bundle init default-scala
  2. Pour le nom du projet, saisissez my_scala_project. Ceci détermine le nom du répertoire racine de ce bundle. Ce répertoire racine est créé dans votre répertoire de travail actuel.

  3. Pour le chemin de destination des volumes, indiquez le chemin des volumes Unity Catalog dans Databricks où vous souhaitez que le répertoire du bundle soit créé pour contenir le JAR et d'autres artefacts, par exemple /Volumes/my-catalog/my-schema/bundle-volumes.

remarque

Le projet Template configure le compute serverless, mais si vous le modifiez pour utiliser le compute classique, votre administrateur devra peut-être autoriser le chemin JAR des volumes que vous spécifiez. Consultez Autoriser les bibliothèques et les scripts d'initialisation sur le compute avec le mode d'accès standard (anciennement mode d'accès partagé).

Étape 2 : Configurez les options de VM

  1. Importez le répertoire actuel dans votre IntelliJ où build.sbt est situé.

  2. Choisissez Java 17 dans IntelliJ. Accédez à File > Project Structure > SDKs .

  3. Ouvrez src/main/scala/com/examples/Main.scala.

  4. Accédez à la configuration de Main pour ajouter des options de VM :

    Modifier Principal

    Ajouter des options de VM

  5. Ajoutez les éléments suivants à vos options de VM :

    --add-opens=java.base/java.nio=ALL-UNNAMED
astuce

Alternativement, ou si vous utilisez Visual Studio Code, ajoutez ce qui suit à votre fichier de build sbt :

fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

Ensuite, exécutez votre application depuis le terminal :

sbt run

Étape 3 : Explorer le bundle

Pour afficher les fichiers générés par le Template, accédez au répertoire racine de votre nouveau bundle et ouvrez ce répertoire dans votre IDE. Le Template utilise sbt pour compiler et packager les fichiers Scala et fonctionne avec Databricks Connect pour le développement local. Pour des informations détaillées, consultez le fichier README.md du projet généré.

Les fichiers présentant un intérêt particulier sont les suivants :

  • databricks.yml: Ce fichier spécifie le nom programmatique du bundle, inclut une référence à la définition de job et spécifie les paramètres concernant le workspace cible.
  • resources/my_scala_project.job.yml: ce fichier spécifie la tâche JAR et les paramètres de cluster du Job.
  • src/: Ce répertoire inclut les fichiers sources pour le projet Scala.
  • build.sbt: Ce fichier contient d'importants paramètres de build et de bibliothèque dépendante.
  • README.md: Ce fichier contient ces étapes de getting start, ainsi que des instructions de build locales et des paramètres.

Étape 4 : Validez le fichier de configuration du bundle du projet

Ensuite, vérifiez si la configuration du bundle est valide à l’aide de la commande de validation du bundle.

  1. Depuis le répertoire racine, exécutez la commande Databricks CLI bundle validate. Entre autres vérifications, cela vérifie que le volume spécifié dans le fichier de configuration existe dans le workspace.

    Bash
    databricks bundle validate
  2. Si un résumé de la configuration du bundle est renvoyé, la validation a réussi. Si des erreurs sont renvoyées, corrigez les erreurs, puis répétez cette étape.

Si vous apportez des modifications à votre bundle après cette étape, répétez cette étape pour vérifier si votre configuration de bundle est toujours valide.

Étape 5 : Déployer le projet local vers le workspace distant

Déployez maintenant le bundle dans votre Workspace Databricks distant à l'aide de la commande de déploiement de bundle. Cette étape crée le fichier JAR et l'upload vers le volume spécifié.

  1. Exécutez la commande Databricks CLI bundle deploy :

    Bash
    databricks bundle deploy -t dev
  2. Pour vérifier si le fichier JAR créé localement a été déployé :

    1. Dans la barre latérale de votre Workspace Databricks, cliquez sur Explorateur de catalogues .
    2. Naviguez vers le chemin de destination du volume que vous avez spécifié lors de l'initialisation du bundle. Le fichier JAR doit être situé dans le dossier suivant à l'intérieur de ce chemin : /my_scala_project/dev/<user-name>/.internal/.
  3. Pour vérifier si le Job a été créé :

    1. Dans la barre latérale de votre workspace Databricks, cliquez sur Tâches & Pipelines .
    2. Facultativement, sélectionnez les filtres **Jobs** et **Appartenant à moi**.
    3. Cliquez sur [dev <your-username>] my_scala_project .
    4. Cliquez sur l'onglet Tasks tab .

    Il devrait y avoir une tâche : main_task .

Si vous apportez des modifications à votre bundle après cette étape, répétez les étapes de validation et de déploiement.

Étape 6 : exécuter le projet déployé

Enfin, exécutez le Job Databricks à l'aide de la commande d'exécution du bundle.

  1. Depuis le répertoire racine, exécutez la commande CLI Databricks bundle run, en spécifiant le nom du job dans le fichier de définition my_scala_project.job.yml:

    Bash
    databricks bundle run -t dev my_scala_project
  2. Copiez la valeur de Run URL qui apparaît dans votre terminal et collez cette valeur dans votre navigateur web pour ouvrir votre workspace Databricks.

  3. Dans votre Workspace Databricks, une fois la tâche terminée avec succès et qu'une barre de titre verte s'affiche, cliquez sur la tâche **main_task** pour voir les résultats.