Installer Databricks Connect pour Scala

Remarque

Cet article présente Databricks Connect pour Databricks Runtime 13.3 LTS et les versions ultérieures.

Cet article explique comment installer Databricks Connect pour Scala. Consultez Qu’est-ce que Databricks Connect ?. Pour accéder à la version Python de cet article, consultez Installer Databricks Connect pour Python.

Spécifications

  • Votre cluster et votre espace de travail Azure Databricks cibles doivent répondre aux exigences de Configuration de cluster pour Databricks Connect.
  • JDK (Java Development Kit) doit être installé sur votre machine de développement. Databricks recommande que la version de l’installation de JDK que vous utilisez corresponde à la version de JDK sur votre cluster Azure Databricks. Pour trouver la version du JDK de votre cluster, consultez la section « Environnement système » des notes de publication de Databricks Runtime pour votre cluster. Par exemple, Zulu 8.70.0.23-CA-linux64 correspond à JDK 8. Consultez Notes de publication, versions et compatibilité de Databricks Runtime.
  • Scala doit être installé sur votre machine de développement. Databricks recommande que la version de l’installation de Scala que vous utilisez corresponde à la version de Scala sur votre cluster Azure Databricks. Pour trouver la version de Scala de votre cluster, consultez la section « Environnement système » des notes de publication de Databricks Runtime pour votre cluster. Consultez Notes de publication, versions et compatibilité de Databricks Runtime.
  • Un outil de build Scala sur votre machine de développement, par exemple sbt.

Configurer le client

Après avoir répondu aux exigences de Databricks Connect, effectuez les étapes suivantes pour configurer le client Databricks Connect.

Étape 1 : Ajouter une référence au client Databricks Connect

  1. Dans le fichier de build de votre projet Scala, par exemple build.sbt pour sbt, pom.xml pour Maven ou build.gradle pour Gradle, ajoutez la référence suivante au client Databricks Connect :

    Sbt

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

    Maven

    <dependency>
      <groupId>com.databricks</groupId>
      <artifactId>databricks-connect</artifactId>
      <version>14.0.0</version>
    </dependency>
    

    Gradle

    implementation 'com.databricks.databricks-connect:14.0.0'
    
  2. Remplacez 14.0.0 par la version de la bibliothèque Databricks Connect qui correspond à la version de Databricks Runtime sur votre cluster. Vous trouverez les numéros de version de la bibliothèque Databricks Connect dans le dépôt central Maven.

Étape 2 : Configurer les propriétés de connexion

Dans cette section, vous allez configurer des propriétés pour établir une connexion entre Databricks Connect et votre cluster Azure Databricks distant. Ces propriétés comprennent des paramètres permettant d’authentifier Databricks Connect avec votre cluster.

À partir de Databricks Connect pour Databricks Runtime 13.3 LTS et versions ultérieures, pour Scala, Databricks Connect inclut le kit SDK Databricks pour Java. Ce SDK implémente la norme d’authentification unifiée du client Databricks, une approche architecturale et programmatique consolidée et cohérente pour l’authentification. Cette approche permet de configurer et d’automatiser l’authentification avec Azure Databricks de façon plus centralisée et prévisible. Elle vous permet de configurer une seule fois l’authentification Azure Databricks, puis d’utiliser cette configuration sur plusieurs outils Azure Databricks et SDK sans modifier à nouveau la configuration de l’authentification.

Remarque

  1. Collectez les propriétés de configuration suivantes.

  2. Configurez la connexion dans votre code. Databricks Connect recherche les propriétés de configuration dans l’ordre suivant jusqu’à ce qu’il les trouve. Une fois qu’il les a trouvées, il cesse de rechercher parmi les options restantes. Les détails de chaque option apparaissent après le tableau suivant :

    Options des propriétés de configuration S’applique à
    1. La classe DatabricksSession de la méthode remote() Authentification unique à l’aide d’un jeton d’accès personnel Azure Databricks
    2. Un profil de configuration Azure Databricks Tous les types d’authentification Azure Databricks pris en charge
    3. La variable d’environnement SPARK_REMOTE Authentification unique à l’aide d’un jeton d’accès personnel Azure Databricks
    4. La variable d’environnement DATABRICKS_CONFIG_PROFILE Tous les types d’authentification Azure Databricks pris en charge
    5. Une variable d’environnement pour chaque propriété de connexion Tous les types d’authentification Azure Databricks pris en charge
    6. Un profil de configuration Azure Databricks nommé DEFAULT Tous les types d’authentification Azure Databricks pris en charge
    1. La classe DatabricksSession de la méthode remote()

      Pour cette option, qui s’applique uniquement à l’authentification par jetons d’accès personnels Azure Databricks, spécifiez le nom d’instance de l’espace de travail, le jeton d’accès personnel Azure Databricks et l’ID du cluster.

      Vous pouvez initialiser la classe DatabricksSession de plusieurs façons, comme suit :

      • Définissez les champs et host, token et clusterId dans DatabricksSession.builder.
      • Utilisez la classe Config du Kit de développement logiciel (SDK) de Databricks.
      • Spécifiez un profil de configuration Databricks avec le champ clusterId.

      Databricks déconseille de spécifier directement ces propriétés de connexion dans votre code. À la place, Databricks recommande de configurer les propriétés via des variables d’environnement ou des fichiers config, comme indiqué tout au long de cette section. Les exemples de code suivants considèrent que vous fournissez vous-même une implémentation des fonctions retrieve* proposées pour obtenir les propriétés nécessaires auprès de l’utilisateur ou d’une autre banque de configuration, comme Azure KeyVault.

      Le code de chacune de ces approches est le suivant :

      // Set the host, token, and clusterId fields in DatabricksSession.builder.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder()
        .host(retrieveWorkspaceInstanceName())
        .token(retrieveToken())
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Use the Databricks SDK's Config class.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setHost(retrieveWorkspaceInstanceName())
        .setToken(retrieveToken())
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Specify a Databricks configuration profile along with the clusterId field.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    2. Un profil de configuration Azure Databricks

      Pour cette option, créez ou identifiez un profil de configuration Azure Databricks contenant le champ cluster_id et tout autre champ nécessaire pour le type d’authentification Databricks pris en charge, que vous souhaitez utiliser.

      Les champs de profil de configuration requis pour chaque type d'authentification sont les suivants :

      Définissez ensuite le nom de ce profil de configuration via la classe DatabricksConfig.

      Vous pouvez spécifier cluster_id de plusieurs façons, comme suit :

      • Incluez le champ cluster_id dans votre profil de configuration, puis spécifiez simplement le nom du profil de configuration.
      • Spécifiez le nom du profil de configuration avec le champ clusterId.

      Si vous avez déjà défini la variable d’environnement DATABRICKS_CLUSTER_ID avec l’ID du cluster, vous n’avez pas besoin de spécifier les champs cluster_id ou clusterId.

      Le code de chacune de ces approches est le suivant :

      // Include the cluster_id field in your configuration profile, and then
      // just specify the configuration profile's name:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
        val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .getOrCreate()
      
      // Specify the configuration profile name along with the clusterId field.
      // In this example, retrieveClusterId() assumes some custom implementation that
      // you provide to get the cluster ID from the user or from some other
      // configuration store:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    3. Variable d’environnement SPARK_REMOTE

      Pour cette option, qui s’applique uniquement à l’authentification par jetons d’accès personnels Azure Databricks , définissez la variable d’environnement SPARK_REMOTE sur la chaîne suivante, en remplaçant les espaces réservés par les valeurs appropriées.

      sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
      

      Puis initialisez la classe DatabricksSession comme suit :

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Pour définir des variables d’environnement, consultez la documentation de votre système d’exploitation.

    4. Variable d’environnement DATABRICKS_CONFIG_PROFILE

      Pour cette option, créez ou identifiez un profil de configuration Azure Databricks contenant le champ cluster_id et tout autre champ nécessaire pour le type d’authentification Databricks pris en charge, que vous souhaitez utiliser.

      Si vous avez déjà défini la variable d’environnement DATABRICKS_CLUSTER_ID avec l’ID du cluster, vous n’avez pas besoin de spécifier cluster_id.

      Les champs de profil de configuration requis pour chaque type d'authentification sont les suivants :

      Attribuez à la variable d’environnement DATABRICKS_CONFIG_PROFILE le nom de ce profil de configuration. Puis initialisez la classe DatabricksSession comme suit :

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Pour définir des variables d’environnement, consultez la documentation de votre système d’exploitation.

    5. Une variable d’environnement pour chaque propriété de connexion

      Pour cette option, définissez la variable d’environnement DATABRICKS_CLUSTER_ID ainsi que toutes les autres variables d’environnement nécessaires pour le type d’authentification Databricks pris en charge, que vous souhaitez utiliser.

      Les variables d'environnement requises pour chaque type d'authentification sont les suivantes :

      Puis initialisez la classe DatabricksSession comme suit :

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Pour définir des variables d’environnement, consultez la documentation de votre système d’exploitation.

    6. Profil de configuration Azure Databricks nommé DEFAULT

      Pour cette option, créez ou identifiez un profil de configuration Azure Databricks contenant le champ cluster_id et tout autre champ nécessaire pour le type d’authentification Databricks pris en charge, que vous souhaitez utiliser.

      Si vous avez déjà défini la variable d’environnement DATABRICKS_CLUSTER_ID avec l’ID du cluster, vous n’avez pas besoin de spécifier cluster_id.

      Les champs de profil de configuration requis pour chaque type d'authentification sont les suivants :

      Nommez ce profil de configuration DEFAULT.

      Puis initialisez la classe DatabricksSession comme suit :

      scala
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()