Partager via


Tutoriel : Exécuter du code à partir d’IntelliJ IDEA sur le calcul classique

Ce tutoriel montre comment bien démarrer avec Databricks Connect pour Scala à l’aide d’IntelliJ IDEA et du plug-in Scala.

Dans ce tutoriel, vous allez créer un projet dans IntelliJ IDEA, installer Databricks Connect pour Databricks Runtime 13.3 LTS et versions ultérieures, puis exécuter du code simple sur le calcul dans votre espace de travail Databricks à partir d’IntelliJ IDEA.

Conseil / Astuce

Pour savoir comment utiliser databricks Asset Bundles pour créer un projet Scala qui exécute du code sur le calcul serverless, consultez Générer un fichier JAR Scala à l’aide de Bundles de ressources Databricks.

Spécifications

Pour suivre ce tutoriel, vous devez répondre aux exigences suivantes :

  • Votre espace de travail, votre environnement local et votre calcul répondent aux exigences de Databricks Connect pour Scala. Consultez les exigences d’utilisation de Databricks Connect.

  • Vous devez disposer de l’identifiant de votre cluster. Pour obtenir votre ID de cluster, dans votre espace de travail, cliquez sur Calcul dans la barre latérale, puis sur le nom de votre cluster. Dans la barre d’adresses de votre navigateur web, copiez la chaîne de caractères entre clusters et configuration dans l’URL.

  • Vous devez avoir le Kit de développement Java (JDK) installé sur votre machine de développement. Pour plus d’informations sur la version à installer, consultez la matrice de prise en charge des versions.

    Remarque

    Si vous n’avez pas installé de JDK ou si vous avez plusieurs installations du JDK sur votre machine de développement, vous pouvez installer ou sélectionner un JDK spécifique ultérieurement à l’étape 1. Choisir une installation du JDK inférieure ou supérieure à la version du JDK sur votre cluster peut produire des résultats inattendus ou empêcher l’exécution de votre code.

  • Vous devez avoir installé IntelliJ IDEA. Ce tutoriel a été testé avec IntelliJ IDEA Community Edition 2023.3.6. Si vous utilisez une version ou édition différente d’IntelliJ IDEA, les instructions suivantes peuvent varier.

  • Vous devez avoir installé le plugin Scala pour IntelliJ IDEA.

Étape 1 : Configurer l’authentification Azure Databricks

Ce tutoriel utilise l’authentification OAuth user-to-machine (U2M) d’Azure Databricks et un profil de configuration Azure Databricks pour s’authentifier auprès de votre espace de travail Azure Databricks. Pour utiliser un autre type d’authentification, veuillez consulter la section Configurer les propriétés de connexion.

La configuration de l’authentification OAuth U2M nécessite l’installation de l’interface en ligne de commande Databricks CLI, comme suit :

  1. Installez l’interface CLI Databricks :

    Linux, macOS

    Utilisez Homebrew pour installer l’interface CLI Databricks en exécutant les deux commandes suivantes :

    brew tap databricks/tap
    brew install databricks
    

    Fenêtres

    Vous pouvez utiliser winget, Chocolatey ou WSL (Sous-système Windows pour Linux) pour installer l’interface CLI Databricks. Si vous ne pouvez pas utiliser wingetChocolatey ou WSL, vous devez ignorer cette procédure et utiliser l’invite de commande ou PowerShell pour installer l’interface CLI Databricks depuis la source à la place.

    Remarque

    L’installation de l’interface CLI Databricks avec Chocolatey est Expérimentale.

    Pour installer l’interface CLI Databricks via winget, exécutez les deux commandes suivantes, puis redémarrez votre invite de commandes :

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    Pour utiliser Chocolatey pour installer l’interface CLI Databricks, exécutez la commande suivante :

    choco install databricks-cli
    

    Pour utiliser WSL pour installer l’interface CLI Databricks :

    1. Installez curl et zip via WSL. Pour plus d’informations, consultez la documentation de votre système d’exploitation.

    2. Utilisez WSL pour installer l’interface CLI Databricks en exécutant la commande suivante :

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. Vérifiez que l’interface CLI Databricks est installée en exécutant la commande suivante, qui affiche la version actuelle de l’interface CLI Databricks installée. Cette version doit être la version 0.205.0 ou ultérieure :

    databricks -v
    

Lancez l’authentification OAuth U2M comme suit :

  1. Utilisez l’interface CLI Databricks pour lancer la gestion des jetons OAuth localement en exécutant la commande suivante pour chaque espace de travail cible.

    Dans la commande suivante, remplacez <workspace-url> par votre URL Azure Databricks par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. L’interface CLI Databricks vous invite à enregistrer les informations que vous avez entrées en tant que profil de configuration Azure Databricks. Appuyez sur Enter pour accepter le nom de profil suggéré, ou entrez le nom d’un profil nouveau ou existant. Tout profil existant portant le même nom est remplacé par les informations que vous avez entrées. Vous pouvez utiliser des profils pour changer rapidement de contexte d’authentification entre plusieurs espaces de travail.

    Pour obtenir la liste des profils existants, dans un autre terminal ou une autre invite de commandes, utilisez l’interface CLI Databricks pour exécuter la commande databricks auth profiles. Pour afficher les paramètres existants d’un profil spécifique, exécutez la commande databricks auth env --profile <profile-name>.

  3. Dans votre navigateur web, suivez les instructions à l’écran pour vous connecter à votre espace de travail Azure Databricks.

  4. Dans la liste des clusters disponibles qui s’affiche dans votre terminal ou invite de commande, utilisez les flèches haut et bas pour sélectionner le cluster Azure Databricks cible dans votre espace de travail, puis appuyez sur Enter. Vous pouvez également taper n’importe quelle partie du nom d’affichage du cluster pour filtrer la liste des clusters disponibles.

  5. Pour afficher la valeur actuelle du jeton OAuth d’un profil et l’horodatage d’expiration à venir du jeton, exécutez l’une des commandes suivantes :

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Si vous avez plusieurs profils avec la même valeur pour --host, il peut être nécessaire de spécifier aussi les options --host et -p pour permettre à l’interface CLI Databricks de trouver les informations du jeton OAuth correspondant.

Étape 2 : créer le projet

  1. Démarrez IntelliJ IDEA.

  2. Dans le menu principal, cliquez sur File > New > Project.

  3. Attribuez un Nom explicite à votre projet.

  4. Pour le champ Location, cliquez sur l’icône de dossier et suivez les instructions à l’écran pour spécifier le chemin de votre nouveau projet Scala.

  5. Pour le champ Language, cliquez sur Scala.

  6. Pour le champ Build system, cliquez sur sbt.

  7. Dans la liste déroulante JDK, sélectionnez une installation existante du JDK sur votre machine de développement qui correspond à la version du JDK sur votre cluster, ou sélectionnez Download JDK et suivez les instructions à l’écran pour télécharger un JDK correspondant à celui de votre cluster. Consultez Spécifications.

    Remarque

    Choisir une version du JDK différente de celle de votre cluster peut entraîner des résultats inattendus ou empêcher l’exécution de votre code.

  8. Dans la liste déroulante sbt, sélectionnez la version la plus récente.

  9. Dans la liste déroulante Scala, sélectionnez la version de Scala correspondant à celle de votre cluster. Consultez Spécifications.

    Remarque

    Choisir une version de Scala différente de celle de votre cluster peut entraîner des résultats inattendus ou empêcher l’exécution de votre code.

  10. Assurez-vous que la case Download sources à côté de Scala est cochée.

  11. Pour le préfixe de paquet, entrez une valeur de préfixe de paquet pour les sources de votre projet, par exemple org.example.application.

  12. Assurez-vous que la case Add sample code est cochée.

  13. Cliquez sur Créer.

Créez le projet IntelliJ IDEA

Étape 3 : Ajouter le package Databricks Connect

  1. Une fois votre nouveau projet Scala ouvert, dans la fenêtre d’outils Project (View > Tool Windows > Project), ouvrez le fichier nommé build.sbt, dans nom-du-projet> target.

  2. Ajoutez le code suivant à la fin du build.sbt fichier, qui déclare la dépendance de votre projet sur une version spécifique de la bibliothèque Databricks Connect pour Scala, compatible avec la version Databricks Runtime de votre cluster :

    libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.+"
    

    Remplacez 17.0 par la version de la bibliothèque Databricks Connect qui correspond à la version de Databricks Runtime sur votre cluster. Par exemple, Databricks Connect 16.4.+ correspond à Databricks Runtime 16.4 LTS. Vous trouverez les numéros de version de la bibliothèque Databricks Connect dans le référentiel central Maven.

    Remarque

    Lors de la génération avec Databricks Connect, n’incluez pas d’artefacts Apache Spark tels que org.apache.spark:spark-core dans votre projet. Au lieu de cela, compilez directement sur Databricks Connect.

  3. Cliquez sur l’icône de notification Load sbt changes pour mettre à jour votre projet Scala avec la nouvelle bibliothèque et sa dépendance.

    Installez le package Databricks Connect

  4. Patientez jusqu’à ce que l’indicateur de progression de sbt en bas de l’IDE disparaisse. Le processus de chargement de sbt peut prendre quelques minutes.

Étape 4 : Ajouter du code

  1. Dans la fenêtre d’outils Project, ouvrez le fichier nommé Main.scala, dans nom-du-projet> src > main > scala.

  2. Remplacez le code existant du fichier par le code suivant, puis enregistrez le fichier, en fonction du nom de votre profil de configuration.

    Si votre profil de configuration de l’étape 1 se nomme DEFAULT, remplacez le code existant par le code suivant, puis enregistrez le fichier :

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val spark = DatabricksSession.builder().remote().getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

    Si votre profil de configuration de l’étape 1 ne se nomme pas DEFAULT, remplacez le code existant par le code suivant. Remplacez l’espace réservé <profile-name> par le nom de votre profil de configuration défini à l’étape 1, puis enregistrez le fichier :

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import com.databricks.sdk.core.DatabricksConfig
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val config = new DatabricksConfig().setProfile("<profile-name>")
        val spark = DatabricksSession.builder().sdkConfig(config).getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

Étape 5 : Configurer les options de machine virtuelle

  1. Importez le répertoire actif dans votre instance IntelliJ où build.sbt se trouve.

  2. Choisissez Java 17 dans IntelliJ. Accédez à Fichier>Structure du projet>SDKs.

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

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

    Modifier l'élément principal

    Ajouter des options de machine virtuelle

  5. Ajoutez les options suivantes à vos machines virtuelles :

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

Conseil / Astuce

Sinon, 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"

Exécutez ensuite votre application à partir du terminal :

sbt run

Étape 6 : Exécuter le code

  1. Démarrez le cluster cible dans votre espace de travail Azure Databricks distant.
  2. Une fois le cluster démarré, dans le menu principal, cliquez sur Exécuter « > Main ».
  3. Dans la fenêtre d’outils Run (View > Tool Windows > Run), dans l’onglet Main, les 5 premières lignes du tableau samples.nyctaxi.trips s’affichent.

Étape 7 : Déboguer le code

  1. Avec le cluster cible toujours en cours d’exécution, dans le code précédent, cliquez dans la marge à côté de df.limit(5).show() pour définir un point d’arrêt.

  2. Dans le menu principal, cliquez sur Exécuter > le débogage « Main ». Dans la fenêtre d’outils Debug (View > Tool Windows > Debug), dans l’onglet Console, cliquez sur l’icône de calculatrice (Évaluer l’expression).

  3. Entrez l’expression df.schema.

  4. Cliquez sur Évaluer pour afficher le schéma du DataFrame.

  5. Dans la barre latérale de la fenêtre Outil Debug , cliquez sur l’icône flèche verte (Reprendre le programme). Les 5 premières lignes du samples.nyctaxi.trips tableau s’affichent dans le volet Console .

    Déboguez le projet IntelliJ IDEA