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 :
- Unity Catalog est activé. Consultez Activer un workspace pour Unity Catalog.
- Vous devez disposer d'un volume Unity Catalog dans Databricks où vous souhaitez stocker les artefacts de build, et d'autorisations pour upload le JAR vers un chemin de volume spécifié. Consultez Créer et gérer les volumes Unity Catalog.
- Le compute serverless est activé. Assurez-vous de consulter les limitations de la fonctionnalité de compute serverless.
- Votre Workspace se trouve dans une région prise en charge.
De plus, votre environnement de développement local doit avoir les éléments suivants installés :
- Kit de développement Java (JDK) 17
- IntelliJ IDEA
- sbt
- Databricks CLI version 0.218.0 ou supérieure. Pour vérifier la version installée de la Databricks CLI, exécutez la commande
databricks -v. Pour installer la Databricks CLI, consultez Installer ou mettre à jour la Databricks CLI. - L'authentification Databricks CLI est configurée avec un profil
DEFAULT. Pour configurer l'authentification, consultez Configurer l'accès à votre Workspace.
É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.
-
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.
Bashdatabricks bundle init default-scala -
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. -
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.
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
-
Importez le répertoire actuel dans votre IntelliJ où
build.sbtest situé. -
Choisissez Java 17 dans IntelliJ. Accédez à File > Project Structure > SDKs .
-
Ouvrez
src/main/scala/com/examples/Main.scala. -
Accédez à la configuration de Main pour ajouter des options de VM :


-
Ajoutez les éléments suivants à vos options de VM :
--add-opens=java.base/java.nio=ALL-UNNAMED
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.
-
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.Bashdatabricks bundle validate -
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é.
-
Exécutez la commande Databricks CLI
bundle deploy:Bashdatabricks bundle deploy -t dev -
Pour vérifier si le fichier JAR créé localement a été déployé :
- Dans la barre latérale de votre Workspace Databricks, cliquez sur Explorateur de catalogues .
- 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/.
-
Pour vérifier si le Job a été créé :
- Dans la barre latérale de votre workspace Databricks, cliquez sur Tâches & Pipelines .
- Facultativement, sélectionnez les filtres **Jobs** et **Appartenant à moi**.
- Cliquez sur [dev
<your-username>]my_scala_project. - 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.
-
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éfinitionmy_scala_project.job.yml:Bashdatabricks bundle run -t dev my_scala_project -
Copiez la valeur de
Run URLqui apparaît dans votre terminal et collez cette valeur dans votre navigateur web pour ouvrir votre workspace Databricks. -
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.