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.
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
clustersetconfigurationdans 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.
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 :
- Installez la CLI Databricks:
- Linux, macOS
- Windows
Utilisez Homebrew pour installer la CLI Databricks en exécutant les commandes suivantes :
brew tap databricks/tap
brew trust databricks/tap
brew install databricks
La commande brew trust est requise à partir de Homebrew 6.0.0.
Vous pouvez utiliser winget, Chocolatey ou le sous-système Windows pour Linux (WSL) pour installer le CLI Databricks. Si vous ne pouvez pas utiliser winget, Chocolatey ou WSL, vous devez ignorer cette procédure et utiliser l'invite de commande ou PowerShell pour installer le CLI Databricks à partir de la source à la place.
Installing the Databricks CLI with Chocolatey is Experimental.
Pour utiliser winget afin d'installer le CLI Databricks, exécutez les deux commandes suivantes, puis redémarrez votre invite de commandes :
winget search databricks
winget install Databricks.DatabricksCLI
Pour utiliser Chocolatey afin d'installer le Databricks CLI, exécutez la commande suivante :
choco install databricks-cli
Pour utiliser WSL afin d’installer la CLI Databricks :
-
Installez
curletzipvia WSL. Pour plus d'informations, consultez la documentation de votre système d'exploitation. -
Utilisez WSL pour installer la CLI Databricks en exécutant la commande suivante :
Bashcurl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
-
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 :
Bashdatabricks -v
Lancer l'authentification OAuth U2M, comme suit :
-
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, parhttps://dbc-a1b2345c-d6e7.cloud.databricks.comexemple.Bashdatabricks auth login --configure-cluster --host <workspace-url> -
La CLI Databricks vous invite à enregistrer les informations que vous avez saisies en tant que profil de configuration Databricks. Appuyez sur
Enterpour 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 commandedatabricks auth env --profile <profile-name>. -
Dans votre navigateur web, suivez les instructions à l'écran pour vous connecter à votre Databricks Workspace.
-
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. -
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--hostet-pensemble pour aider le CLI Databricks à trouver les informations de jeton OAuth correspondantes correctes.
Étape 2 : Créez le projet
-
Start IntelliJ IDEA.
-
Dans le menu principal, cliquez sur Fichier > Nouveau > Projet .
-
Donnez à votre projet un Nom significatif.
-
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.
-
Pour Langage , cliquez sur Scala .
-
Pour Système de build , cliquez sur sbt .
-
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.
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.
-
Dans la liste déroulante **sbt**, sélectionnez la dernière version.
-
Dans la liste déroulante Scala , sélectionnez la version de Scala qui correspond à la version de Scala sur votre cluster. Consultez Exigences.
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.
-
Assurez-vous que la case **download sources** à côté de **Scala** est cochée.
-
Pour **Préfixe de package**, saisissez une valeur de préfixe de package pour les sources de votre projet, par
org.example.applicationexemple. -
Assurez-vous que la case Ajouter un exemple de code est cochée.
-
Cliquez sur Créer .

Étape 3 : ajouter le package Databricks Connect
-
Avec votre nouveau projet Scala ouvert, dans votre fenêtre d'outils **Projet** (**Affichage > Tool Windows > Projet**), ouvrez le fichier
build.sbtnommé, dans **_nom-du-projet_ > target**. -
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.3par 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).
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.
-
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.

-
Attendez que l'indicateur de progression
sbten bas de l'IDE disparaisse. Le processus de chargementsbtpeut prendre quelques minutes.
Étape 4 : Ajouter le code
-
Dans votre fenêtre d'outil Projet , ouvrez le fichier nommé
Main.scala, dans nom du projet > src > main > scala . -
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 :Scalapackage 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 :Scalapackage 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
-
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 6 : Exécuter le code
- Start le cluster cible dans votre workspace Databricks distant.
- Une fois le cluster a start, dans le menu principal, cliquez sur Exécuter > Exécuter 'Main' .
- 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.tripsapparaissent.
Étape 7 : déboguer le code
-
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. -
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 ).
-
Saisissez l’expression
df.schema. -
Cliquez sur **Évaluer** pour afficher le schéma du DataFrame.
-
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.tripsapparaissent dans le volet Console .