Aller au contenu principal

Configuration du compute pour Databricks Connect

remarque

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

Cette page décrit différentes manières de configurer une connexion entre Databricks Connect et votre cluster Databricks ou votre compute serverless.

Databricks Connect vous permet de connecter des IDEs populaires tels que Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, des serveurs de notebooks et d'autres applications personnalisées aux clusters Databricks. See Databricks Connect.

Configuration

Avant de commencer, vous avez besoin des éléments suivants :

Configurer une connexion à un cluster

Il existe plusieurs façons de configurer la connexion à votre cluster. Databricks Connect recherche les propriétés de configuration dans l'ordre suivant et utilise la première configuration qu'il trouve. Pour des informations de configuration avancée, voir Utilisation avancée de Databricks Connect.

  1. La méthode remote() de la classe DatabricksSession.
  2. Un profil de configuration Databricks
  3. La variable d'environnement DATABRICKS_CONFIG_PROFILE
  4. Une variable d'environnement pour chaque propriété de configuration.
  5. Un profil de configuration Databricks nommé DEFAULT

La méthode remote() de la classe DatabricksSession

Pour cette option, qui s'applique uniquement à S'authentifier avec des jetons d'accès personnel Databricks (hérité), spécifiez le nom de l'instance du Workspace, le jeton d'accès personnel Databricks et l'ID du cluster.

Vous pouvez initialiser la classe DatabricksSession de plusieurs manières :

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

Au lieu de spécifier ces propriétés de connexion dans votre code, Databricks vous recommande de configurer les propriétés via des variables d'environnement ou des fichiers de configuration, comme décrit dans cette section. Les exemples de code suivants supposent que vous fournissez une certaine implémentation des fonctions retrieve_* proposées pour obtenir les propriétés nécessaires de l'utilisateur ou d'une autre banque de configurations, telle que AWS Systems Manager Parameter Store.

Le code pour chacune de ces approches est le suivant :

Python
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
Python
# 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 cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Python
# Specify a Databricks configuration profile along with the `cluster_id` 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 cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

Un profil de configuration Databricks

Pour cette option, créez ou identifiez un profil de configuration Databricks contenant le champ cluster_id et tout autre champ nécessaire au type d'authentification Databricks que vous souhaitez utiliser.

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

Ensuite, définissez le nom de ce profil de configuration par le biais de la classe de configuration.

remarque

Vous pouvez utiliser l'option --configure-cluster de la commande auth login pour ajouter automatiquement le champ cluster_id à un profil de configuration nouveau ou existant. Pour plus d'informations, exécutez la commande databricks auth login -h.

Vous pouvez spécifier cluster_id de plusieurs manières :

  • 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 ainsi que le champ cluster_id.

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

Le code pour chacune de ces approches est le suivant :

Python
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
Python
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

La variable d’environnement DATABRICKS_CONFIG_PROFILE

Pour cette option, créez ou identifiez un profil de configuration Databricks contenant le champ cluster_id et tout autre champ nécessaire au type d'authentification Databricks 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 non plus besoin de spécifier cluster_id.

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

remarque

Vous pouvez utiliser le --configure-cluster de la commande auth login pour ajouter automatiquement le champ cluster_id à un profil de configuration nouveau ou existant. Pour plus d'informations, exécutez la commande databricks auth login -h.

Définissez la variable d'environnement DATABRICKS_CONFIG_PROFILE sur le nom de ce profil de configuration. Initialisez ensuite la classe DatabricksSession :

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Une variable d'environnement pour chaque propriété de configuration

Pour cette option, définissez la variable d'environnement DATABRICKS_CLUSTER_ID et toutes les autres variables d'environnement nécessaires au type d'authentification Databricks que vous souhaitez utiliser.

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

Ensuite, initialisez la classe DatabricksSession :

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Un profil de configuration Databricks nommé DEFAULT

Pour cette option, créez ou identifiez un profil de configuration Databricks contenant le champ cluster_id et tout autre champ nécessaire au type d'authentification Databricks 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 non plus 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.

remarque

Vous pouvez utiliser l’option --configure-cluster de la commande auth login pour ajouter automatiquement le champ cluster_id au profil de configuration DEFAULT. Pour plus d'information, exécutez la commande databricks auth login -h.

Ensuite, initialisez la classe DatabricksSession :

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Configurez une connexion au compute Serverless

Databricks Connect pour Python et Scala prennent en charge la connexion au compute Serverless. Pour utiliser cette fonctionnalité, les exigences de version pour la connexion au serverless doivent être respectées. Consultez les exigences d'utilisation de Databricks Connect.

important

Cette fonctionnalité présente les limitations suivantes :

Pour Python, vous pouvez configurer une connexion à un compute Serverless dans votre environnement local :

  • Définissez la variable d'environnement locale DATABRICKS_SERVERLESS_COMPUTE_ID sur auto. Si cette variable d'environnement est définie, Databricks Connect ignore cluster_id.

  • Dans un profil de configuration Databricks local, définissez serverless_compute_id = auto, puis référencez ce profil à partir de votre code.

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...

Ou pour Python ou Scala :

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.serverless().getOrCreate()
Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()

Valider la connexion à Databricks

Pour valider que votre environnement, les identifiants par default et la connexion au compute sont correctement configurés pour Databricks Connect, exécutez la commande databricks-connect test :

Bash
databricks-connect test

Cette commande échoue avec un code de sortie non nul et un message d'erreur correspondant lorsqu'elle détecte une incompatibilité dans la configuration, par exemple lorsque la version de Databricks Connect est incompatible avec la version de compute Serverless Databricks. Pour les informations de support de version de Databricks Connect, consultez versions de Databricks Connect.

Avec Databricks Connect 14.3 et versions supérieures, vous pouvez également valider votre environnement à l'aide de validateSession():

DatabricksSession.builder.validateSession(True).getOrCreate()

Désactivation de Databricks Connect

Les services Databricks Connect (et Spark Connect sous-jacents) peuvent être désactivés sur n'importe quel cluster donné.

Pour désactiver le service Databricks Connect, définissez la configuration Spark suivante sur le cluster.

spark.databricks.service.server.enabled false