Aller au contenu principal

Tutoriel : exécuter du code depuis IntelliJ IDEA sur un compute classique

Ce tutoriel montre comment démarrer avec Databricks Connect pour Scala en utilisant IntelliJ IDEA et le plug-in Scala.

Dans ce tutoriel, vous créez un projet dans IntelliJ IDEA, installez Databricks Connect pour Databricks Runtime 13.3 LTS et versions ultérieures, et exécutez du code simple sur votre compute dans votre Workspace Databricks depuis IntelliJ IDEA.

astuce

Pour apprendre à utiliser les Declarative Automation Bundles pour créer un projet Scala qui exécute du code sur du compute Serverless, consultez Créer un JAR Scala à l'aide des Declarative Automation Bundles.

Exigences

Pour suivre ce didacticiel, vous devez satisfaire aux exigences suivantes :

  • Votre Workspace, environnement local et compute répondent aux exigences de Databricks Connect pour Scala. Consultez les exigences d'utilisation de Databricks Connect.

  • Vous devez avoir votre ID de cluster disponible. Pour obtenir votre ID de cluster, dans votre Workspace, cliquez sur Compute dans la barre latérale, puis sur le nom de votre cluster. Dans la barre d'adresse de votre navigateur web, copiez la chaîne de caractères entre clusters et configuration dans l'URL.

  • Vous avez installé le Kit de développement Java (JDK) sur votre machine de développement. Pour des informations sur la version à installer, consultez la matrice de support des versions.

remarque

Si vous n'avez pas de JDK installé, ou si vous avez plusieurs installations de JDK sur votre machine de développement, vous pouvez installer ou choisir un JDK spécifique plus tard à l'étape 1. Choisir une installation de JDK qui est inférieure ou supérieure à la version de JDK sur votre cluster pourrait produire des résultats inattendus, ou votre code pourrait ne pas fonctionner du tout.

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

  • Vous avez le plugin Scala pour IntelliJ IDEA installé.

Étape 1 : Configurer l'authentification Databricks

Ce tutoriel utilise l’authentification OAuth utilisateur-à-machine (U2M) de Databricks et un profil de configuration Databricks pour s’authentifier auprès de votre Workspace Databricks. Pour utiliser un autre type d'authentification, veuillez consulter Configurer les propriétés de connexion.

La configuration de l'authentification OAuth U2M nécessite la CLI Databricks, comme suit :

  1. Installez la CLI Databricks:

Utilisez Homebrew pour installer la CLI Databricks en exécutant les commandes suivantes :

Bash
brew tap databricks/tap
brew trust databricks/tap
brew install databricks

La commande brew trust est requise à partir de Homebrew 6.0.0.

  1. Confirmez que le CLI Databricks est installé en exécutant la commande suivante, qui affiche la version actuelle du CLI Databricks installé. Cette version doit être 0,205,0 ou supérieure :

    Bash
    databricks -v

Lancer l'authentification OAuth U2M, comme suit :

  1. Utilisez la CLI Databricks pour initier la gestion locale des jetons OAuth en exécutant la commande suivante pour chaque workspace cible.

    Dans la commande suivante, remplacez <workspace-url> par l'URL de votre instance de workspace Databricks, par https://dbc-a1b2345c-d6e7.cloud.databricks.com exemple.

    Bash
    databricks auth login --configure-cluster --host <workspace-url>
  2. La CLI Databricks vous invite à enregistrer les informations que vous avez saisies en tant que profil de configuration 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 écrasé avec les informations que vous avez saisies. Vous pouvez utiliser des profils pour basculer rapidement votre contexte d'authentification entre plusieurs Workspaces.

    Pour obtenir une liste de tous les profils existants, dans un terminal ou une invite de commande distinct, utilisez la CLI Databricks pour exécuter la commande databricks auth profiles. Pour consulter 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 Databricks Workspace.

  4. Dans la liste des clusters disponibles qui apparaît dans votre terminal ou votre invite de commande, utilisez les touches de direction haut et bas pour sélectionner le cluster Databricks cible dans votre Workspace, 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 token OAuth d'un profil et le timestamp d'expiration à venir du token, 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 --host, vous devrez peut-être spécifier les options --host et -p ensemble pour aider le CLI Databricks à trouver les informations de jeton OAuth correspondantes correctes.

Étape 2 : Créez le projet

  1. Start IntelliJ IDEA.

  2. Dans le menu principal, cliquez sur Fichier > Nouveau > Projet .

  3. Donnez à votre projet un Nom significatif.

  4. Pour Emplacement , cliquez sur l'icône de dossier et suivez les instructions à l'écran pour spécifier le chemin d'accès à votre nouveau projet Scala.

  5. Pour Langage , cliquez sur Scala .

  6. Pour Système de build , 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 download un JDK qui correspond à la version du JDK sur votre cluster. Consultez les Exigences.

remarque

Le choix d'une installation JDK supérieure ou inférieure à la version JDK sur votre cluster pourrait produire des résultats inattendus, ou votre code pourrait ne pas s'exécuter du tout.

  1. Dans la liste déroulante **sbt**, sélectionnez la dernière version.

  2. Dans la liste déroulante Scala , sélectionnez la version de Scala qui correspond à la version de Scala sur votre cluster. Consultez Exigences.

remarque

Le choix d'une version de Scala inférieure ou supérieure à la version de Scala de votre cluster pourrait produire des résultats inattendus, ou votre code pourrait ne pas s'exécuter du tout.

  1. Assurez-vous que la case **download sources** à côté de **Scala** est cochée.

  2. Pour **Préfixe de package**, saisissez une valeur de préfixe de package pour les sources de votre projet, par org.example.application exemple.

  3. Assurez-vous que la case Ajouter un exemple de code est cochée.

  4. Cliquez sur Créer .

Créer le projet IntelliJ IDEA

Étape 3 : ajouter le package Databricks Connect

  1. Avec votre nouveau projet Scala ouvert, dans votre fenêtre d'outils **Projet** (**Affichage > Tool Windows > Projet**), ouvrez le fichier build.sbt nommé, dans **_nom-du-projet_ > target**.

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

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

    Remplacez 17.3 par la version de la bibliothèque Databricks Connect qui correspond à la version de Databricks Runtime sur votre cluster. Par exemple, Databricks Connect 17.3.+ correspond à Databricks Runtime 17.3 LTS. Vous trouverez les numéros de version de la bibliothèque Databricks Connect dans le repository central Maven (pour Databricks Runtime 16.4 LTS et versions antérieures) ou le repository central Maven (pour Databricks Runtime 17.0 et versions supérieures).

remarque

Lorsque vous développez 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.

  1. Cliquez sur l'icône de notification Load sbt changes pour mettre à jour votre projet Scala avec le nouvel emplacement de bibliothèque et la nouvelle dépendance.

    Installer le package Databricks Connect

  2. Attendez que l'indicateur de progression sbt en bas de l'IDE disparaisse. Le processus de chargement sbt peut prendre quelques minutes.

Étape 4 : Ajouter le code

  1. Dans votre fenêtre d'outil Projet , ouvrez le fichier nommé Main.scala, dans nom du projet > src > main > scala .

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

    Si le nom de votre profil de configuration de l'étape 1 est DEFAULT, remplacez le code existant dans le fichier par le code suivant, puis enregistrez le fichier :

    Scala
    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 le nom de votre profil de configuration de l'étape 1 n'est pas DEFAULT, remplacez le code existant dans le fichier par le code suivant. Remplacez l'espace réservé <profile-name> par le nom de votre profil de configuration de l'étape 1, puis enregistrez le fichier :

    Scala
    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 la 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 6 : Exécuter le code

  1. Start le cluster cible dans votre workspace Databricks distant.
  2. Une fois le cluster a start, dans le menu principal, cliquez sur Exécuter > Exécuter 'Main' .
  3. Dans la fenêtre d'outil Run ( View > Fenêtres d'outil > Run ), sur la tab Main , les 5 premières lignes de la table samples.nyctaxi.trips apparaissent.

É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 > Déboguer 'Main' . Dans la fenêtre d'outils Débogage ( Vue > Outils Windows > Débogage ), dans la Console tab , cliquez sur l'icône de la calculatrice ( Évaluer l'expression ).

  3. Saisissez 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 d'outils Débogage , cliquez sur l'icône de la flèche verte ( Reprendre le programme ). Les 5 premières lignes de la table samples.nyctaxi.trips apparaissent dans le volet Console .

    Déboguer le projet IntelliJ IDEA