Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cet article présente Databricks Connect pour Databricks Runtime 13.3 LTS et les versions ultérieures.
Cette page décrit différentes façons de configurer une connexion entre Databricks Connect et votre Azure Databricks cluster ou calcul sans serveur.
Databricks Connect vous permet de connecter des IDE populaires tels que Visual Studio Code, PyCharm, RStudio Desktop, IntelliJ IDEA, les serveurs Notebook et d'autres applications personnalisées aux clusters Azure Databricks. Consultez Databricks Connect.
Configuration
Avant de débuter, vous avez besoin des éléments suivants :
- Databricks Connect installé. Pour connaître les exigences d’installation, consultez les exigences d’utilisation de Databricks Connect.
- Nom de l’instance Azure Databricks workspace. Il s’agit de la valeur Nom d’hôte du serveur pour votre calcul. Consultez les détails de connexion pour une ressource de calcul Azure Databricks.
- Si vous vous connectez à un calcul classique, l’ID de votre cluster. Vous pouvez récupérer l’ID de cluster à partir de l’URL. Consultez l’URL et l’ID des ressources de calcul.
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 trouvée. Pour obtenir des informations de configuration avancées, consultez Utilisation avancée de Databricks Connect.
- Méthode remote() de la classe DatabricksSession.
- Un profil de configuration Databricks
- La variable d’environnement DATABRICKS_CONFIG_PROFILE
- Une variable d’environnement pour chaque propriété de connexion
- Un profil de configuration Azure Databricks nommé DEFAULT
Méthode de la DatabricksSessionremote() classe
Pour cette option, qui s’applique uniquement à l'authentification avec les jetons d'accès personnels (hérités) d'Azure Databricks, spécifiez le nom de l’instance de l’espace de travail, le jeton d’accès personnel Azure Databricks et l’ID du cluster.
Vous pouvez initialiser la DatabricksSession classe de plusieurs façons :
- Définissez les champs
host,tokenetcluster_iddansDatabricksSession.builder.remote(). - Utilisez la classe SDK de Databricks
Config. - 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 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 implémentation des fonctions retrieve_* proposées pour obtenir les propriétés nécessaires de l’utilisateur ou à partir d’un autre magasin de configuration, tel que Azure KeyVault.
Le code de 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()
Langage de programmation Scala
// 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()
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()
Langage de programmation Scala
// 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()
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()
Langage de programmation Scala
// 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()
Un profil de configuration Databricks
Pour cette option, créez ou identifiez un profil de configuration Azure Databricks configuration contenant le champ cluster_id et tous les autres champs nécessaires pour le type d’authentification Databricks que vous souhaitez utiliser.
Les champs de profil de configuration requis pour chaque type d'authentification sont les suivants :
- Pour l’authentification par personal access token Azure Databricks :
hostettoken. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
host,client_idetclient_secret. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
host. - Pour l’authentification du principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
host,azure_tenant_id,azure_client_id,azure_client_secretet éventuellementazure_workspace_resource_id. - Pour l’authentification Azure CLI :
host. - Pour l’authentification des identités managées Azure (le cas échéant) :
host,azure_use_msi,azure_client_idet éventuellementazure_workspace_resource_id.
Définissez ensuite le nom de ce profil de configuration via la classe de configuration.
Vous pouvez spécifier cluster_id plusieurs façons :
- Incluez le
cluster_idchamp 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
cluster_id.
Si vous avez déjà défini la DATABRICKS_CLUSTER_ID variable d’environnement avec l’ID du cluster, vous n’avez pas non plus besoin de spécifier cluster_id.
Le code de 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()
Langage de programmation Scala
// 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()
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()
Langage de programmation Scala
// 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()
La variable d’environnement DATABRICKS_CONFIG_PROFILE
Pour cette option, créez ou identifiez un profil de configuration Azure Databricks configuration contenant le champ cluster_id et tous les autres champs nécessaires pour le type d’authentification Databricks que vous souhaitez utiliser.
Si vous avez déjà défini la DATABRICKS_CLUSTER_ID variable d’environnement 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 :
- Pour l’authentification par personal access token Azure Databricks :
hostettoken. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
host,client_idetclient_secret. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
host. - Pour l’authentification du principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
host,azure_tenant_id,azure_client_id,azure_client_secretet éventuellementazure_workspace_resource_id. - Pour l’authentification Azure CLI :
host. - Pour l’authentification des identités managées Azure (le cas échéant) :
host,azure_use_msi,azure_client_idet éventuellementazure_workspace_resource_id.
Attribuez à la variable d’environnement DATABRICKS_CONFIG_PROFILE le nom de ce profil de configuration. Initialisez ensuite la DatabricksSession classe :
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Langage de programmation Scala
import com.databricks.connect.DatabricksSession
val 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 ainsi que les autres variables d’environnement nécessaires pour le type d’authentification Databricks que vous souhaitez utiliser.
Les variables d'environnement requises pour chaque type d'authentification sont les suivantes :
- Pour l’authentification par personal access token Azure Databricks :
DATABRICKS_HOSTetDATABRICKS_TOKEN. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
DATABRICKS_HOST,DATABRICKS_CLIENT_IDetDATABRICKS_CLIENT_SECRET. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
DATABRICKS_HOST. - Pour l’authentification du principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
DATABRICKS_HOST,ARM_TENANT_ID,ARM_CLIENT_ID,ARM_CLIENT_SECRETet éventuellementDATABRICKS_AZURE_RESOURCE_ID. - Pour l’authentification Azure CLI :
DATABRICKS_HOST. - Pour l’authentification des identités managées Azure (le cas échéant) :
DATABRICKS_HOST,ARM_USE_MSI,ARM_CLIENT_IDet éventuellementDATABRICKS_AZURE_RESOURCE_ID.
Initialisez ensuite la DatabricksSession classe :
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Langage de programmation Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Un profil de configuration Databricks nommé DEFAULT
Pour cette option, créez ou identifiez un profil de configuration Azure Databricks configuration contenant le champ cluster_id et tous les autres champs nécessaires pour le type d’authentification Databricks que vous souhaitez utiliser.
Si vous avez déjà défini la DATABRICKS_CLUSTER_ID variable d’environnement 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 :
- Pour l’authentification par personal access token Azure Databricks :
hostettoken. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
host,client_idetclient_secret. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
host. - Pour l’authentification du principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
host,azure_tenant_id,azure_client_id,azure_client_secretet éventuellementazure_workspace_resource_id. - Pour l’authentification Azure CLI :
host. - Pour l’authentification des identités managées Azure (le cas échéant) :
host,azure_use_msi,azure_client_idet éventuellementazure_workspace_resource_id.
Nommez ce profil de configuration DEFAULT.
Initialisez ensuite la DatabricksSession classe :
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Langage de programmation Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
Configurer une connexion au calcul sans serveur
Databricks Connect pour Python et Scala prennent en charge la connexion à un calcul serverless. Pour utiliser cette fonctionnalité, les exigences de version pour la connexion à serverless doivent être remplies. Consultez les exigences d’utilisation de Databricks Connect.
Importante
Cette fonctionnalité présente les limitations suivantes :
- La prise en charge du calcul serverless par Databricks Connect pour Scala est en version bêta.
- La version de Databricks Connect et la version de Python ou Scala doivent être compatibles. Consultez les versions de Databricks Connect.
- Toutes les limitations de Databricks Connect pour Python ou Databricks Connect pour Scala.
- Toutes les limitations du calcul serverless
Pour Python, vous pouvez configurer une connexion à un calcul serverless dans votre environnement local :
Définissez la variable d’environnement locale
DATABRICKS_SERVERLESS_COMPUTE_IDsurauto. Si cette variable d’environnement est définie, Databricks Connect ignore lecluster_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()
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
Langage de programmation Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.serverless().getOrCreate()
Valider la connexion à Databricks
Pour vérifier que votre environnement, les informations d’identification par défaut et la connexion au calcul sont correctement configurées pour Databricks Connect, exécutez la databricks-connect test commande :
databricks-connect test
Cette commande échoue avec un code de sortie différent de zéro et un message d’erreur correspondant lorsqu’elle détecte toute incompatibilité dans l’installation, par exemple lorsque la version de Databricks Connect est incompatible avec la version de calcul serverless de Databricks. Pour plus d’informations sur la prise en charge des versions de Databricks Connect, consultez les versions de Databricks Connect.
Dans Databricks Connect 14.3 et versions ulté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