Installer Databricks Connect pour Python
Remarque
Cet article traite de Databricks Connect pour Databricks Runtime 13.0 et versions ultérieures.
Cet article explique comment installer Databricks Connect pour Python. Consultez Qu’est-ce que Databricks Connect ?. Pour la version Scala de cet article, consultez Installer Databricks Connect pour Scala.
Spécifications
Votre cluster et votre espace de travail Azure Databricks cibles doivent répondre aux exigences de Configuration de cluster pour Databricks Connect.
Vous devez installer Python 3 sur votre machine de développement et la version mineure de votre installation cliente de Python doit être identique à la version Python mineure de votre cluster Azure Databricks. Pour trouver la version mineure de Python 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.
Remarque
Si vous souhaitez utiliser les UDF PySpark, il est important que la version mineure de Python installée par votre machine de développement corresponde à la version mineure de Python installée sur le cluster et incluse avec Databricks Runtime.
La version de package majeure et mineure de Databricks Connect doit toujours correspondre à votre version de Databricks Runtime. Databricks vous recommande de toujours utiliser le package le plus récent de Databricks Connect qui correspond à votre version de Databricks Runtime. Par exemple, quand vous utilisez un cluster Databricks Runtime 14.0, vous devez également utiliser la version
14.0
du packagedatabricks-connect
.Remarque
Consultez les notes de publication de Databricks Connect pour obtenir la liste des versions et des mises à jour de maintenance de Databricks Connect.
Il n’est pas obligatoire d’utiliser le package Databricks Connect le plus récent qui correspond à votre version de Databricks Runtime. Pour Databricks Runtime 13.3 LTS et versions ultérieures, vous pouvez utiliser le package Databricks Connect avec toutes les versions de Databricks Runtime identiques ou postérieures à la version du package Databricks Connect. Toutefois, si vous souhaitez utiliser les fonctionnalités disponibles dans les versions ultérieures de Databricks Runtime, vous devez mettre à niveau le package Databricks Connect en conséquence.
Databricks recommande vivement d’avoir un environnement virtuel Python activé pour chaque projet de code Python que vous utilisez avec Databricks Connect. Les environnements virtuels Python garantissent que vous utilisez les bonnes versions de Python et Databricks Connect ensemble. Cela peut aider à diminuer ou raccourcir la résolution des problèmes techniques associés. Découvrez comment activer un environnement virtuel Python pour
venv
ou Poetry dans les sections suivantes. Pour plus d’informations sur ces outils, consultez venv ou Poetry.
Activer un environnement virtuel Python avec venv
Si vous utilisez venv
sur votre machine de développement, et si votre cluster exécute Python 3.10, vous devez créer un environnement venv
avec cette version. L’exemple de commande suivant génère les scripts pour activer un environnement venv
avec Python 3.10, puis cette commande place ces scripts dans un dossier masqué nommé .venv
dans le répertoire de travail actuel :
# Linux and macOS
python3.10 -m venv ./.venv
# Windows
python3.10 -m venv .\.venv
Afin d’utiliser ces scripts pour activer cet environnement venv
, consultez la page Fonctionnement des venvs.
Passez à Configurer le client.
Activer un environnement virtuel Python avec Poetry
Installez Poetry, si ce n’est pas encore fait.
Si vous utilisez Poetry sur votre machine de développement, et si votre cluster exécute Python 3.10, vous devez créer un environnement virtuel Poetry avec cette version. Dans le répertoire racine de votre projet de code Python existant, demandez à
poetry
d’initialiser votre projet de code Python pour Poetry en exécutant la commande suivante :poetry init
Poetry affiche plusieurs invites pour vous permettre de terminer. Aucune de ces invites n’est spécifique à Databricks Connect. Pour plus d’informations sur ces invites, consultez init.
Une fois les invites terminées, Poetry ajoute un fichier
pyproject.toml
à votre projet Python. Pour plus d’informations sur le fichierpyproject.toml
, consultez le fichier pyproject.toml.Dans le répertoire racine de votre projet de code Python, demandez à
poetry
de lire le fichierpyproject.toml
, de résoudre les dépendances et de les installer, de créer un fichierpoetry.lock
pour verrouiller ces dépendances, et enfin de créer un environnement virtuel. Pour ce faire, exécutez la commande suivante :poetry install
Dans le répertoire racine de votre projet de code Python, indiquez à
poetry
d’activer l’environnement virtuel, puis entrez l’interpréteur de commandes. Pour ce faire, exécutez la commande suivante :poetry shell
Vous saurez que votre environnement virtuel est activé, et que l’interpréteur de commandes est entré quand le nom de l’environnement virtuel s’affichera entre parenthèses juste avant l’invite de terminal, par exemple (my-project-py3.10)
.
Pour désactiver l’environnement virtuel et quitter l’interpréteur de commandes à tout moment, exécutez la commande exit
.
Vous savez que vous avez quitté l’interpréteur de commandes quand le nom de l’environnement virtuel ne s’affiche plus entre parenthèses juste avant l’invite de terminal.
Pour plus d’informations sur la création et la gestion d’environnements virtuels Poetry, consultez Gestion des environnements.
Configurer le client
Conseil
Si vous avez déjà installé l’extension Databricks pour Visual Studio Code, vous n’avez pas besoin de suivre ces instructions d’installation.
L’extension Databricks pour Visual Studio Code offre déjà une prise en charge intégrée de Databricks Connect pour Databricks Runtime 13.0 et versions ultérieures. Passez à l’étape Déboguer du code à l’aide de Databricks Connect pour l’extension Databricks pour Visual Studio Code.
Après avoir répondu aux exigences de Databricks Connect, effectuez les étapes suivantes pour configurer le client Databricks Connect.
Étape 1 : Installer le client Databricks Connect
Ces sections expliquent comment installer le client Databricks Connect avec venv ou Poetry.
Installer le client Databricks Connect avec venv
Une fois votre environnement virtuel activé, désinstallez PySpark, s’il est déjà installé, en exécutant la commande
uninstall
. Cela est nécessaire car le packagedatabricks-connect
est en conflit avec PySpark. Pour plus d’informations, consultez Installations PySpark en conflit. Pour vérifier si PySpark est déjà installé, exécutez la commandeshow
.# Is PySpark already installed? pip3 show pyspark # Uninstall PySpark pip3 uninstall pyspark
Votre environnement virtuel étant toujours activé, installez le client Databricks Connect en exécutant la commande
install
. Utilisez l’option--upgrade
pour mettre à niveau toute installation de client existante vers la version spécifiée.pip3 install --upgrade "databricks-connect==14.0.*" # Or X.Y.* to match your cluster version.
Notes
Databricks vous recommande d’ajouter la notation « point-astérisque » pour spécifier
databricks-connect==X.Y.*
au lieu dedatabricks-connect=X.Y
et vous assurer que le package le plus récent est installé. Bien qu’il ne s’agit pas d’une exigence, cela vous permet de vous assurer que vous pouvez utiliser les dernières fonctionnalités prises en charge pour ce cluster.
Passez à l’Étape 2 : Configurer les propriétés de la connexion.
Installer le client Databricks Connect avec Poetry
Une fois votre environnement virtuel activé, désinstallez PySpark, s’il est déjà installé, en exécutant la commande
remove
. Cela est nécessaire car le packagedatabricks-connect
est en conflit avec PySpark. Pour plus d’informations, consultez Installations PySpark en conflit. Pour vérifier si PySpark est déjà installé, exécutez la commandeshow
.# Is PySpark already installed? poetry show pyspark # Uninstall PySpark poetry remove pyspark
Votre environnement virtuel étant toujours activé, installez le client Databricks Connect en exécutant la commande
add
.poetry add databricks-connect@~14.0 # Or X.Y to match your cluster version.
Remarque
Databricks vous recommande d’utiliser la notation « arobase-tilde » pour spécifier
databricks-connect@~14.0
à la place dedatabricks-connect==14.0
, afin de vérifier que le package le plus récent est installé. Bien qu’il ne s’agit pas d’une exigence, cela vous permet de vous assurer que vous pouvez utiliser les dernières fonctionnalités prises en charge pour ce cluster.
É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.1 et versions ultérieures, Databricks Connect inclut le kit SDK Databricks pour Python. 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
L’authentification utilisateur à machine OAuth (U2M) est prise en charge sur le Kit de développement logiciel (SDK) Databricks pour Python 0.19.0 et ultérieur. Il peut être nécessaire de mettre à jour la version installée de votre projet de code du Kit de développement logiciel (SDK) Databricks pour Python vers la version 0.19.0 ou ultérieure pour utiliser l’authentification U2M OAuth. Consultez Prise en main du Kit de développement logiciel (SDK) Databricks pour Python.
Pour l’authentification U2M OAuth, vous devez utiliser l’interface CLI Databricks pour vous authentifier avant d’exécuter votre code Python. Consultez le Tutoriel.
Authentification machine à machine (M2M) OAuth L’authentification machine à machine (M2M) OAuth est prise en charge sur le Kit de développement logiciel (SDK) Databricks pour Python 0.18.0 et ultérieur. Il peut être nécessaire de mettre à jour la version installée de votre projet de code du Kit de développement logiciel (SDK) Databricks pour Python vers la version 0.18.0 ou ultérieure pour utiliser l’authentification M2M OAuth. Consultez Prise en main du Kit de développement logiciel (SDK) Databricks pour Python.
Le SDK Databricks pour Python n’a pas encore implémenté l’authentification avec des identités managées Azure.
Databricks Connect pour Databricks Runtime 13.0 prend uniquement en charge l’authentification par jetons d’accès personnels Azure Databricks pour l’authentification.
Collectez les propriétés de configuration suivantes.
- Le nom de l’instance de l’espace de travail Azure Databricks. Cette valeur est identique à la valeur Nom d’hôte du serveur de votre cluster. Consultez Obtenir des détails de connexion pour une ressource de calcul Azure Databricks.
- L’ID de votre cluster. Vous pouvez obtenir l’ID du cluster à partir de l’URL. Consultez URL et ID du cluster.
- Toutes les autres propriétés nécessaires pour le type d’authentification Databricks pris en charge, que vous souhaitez utiliser. Ces propriétés sont décrites tout au long de cette section.
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éthoderemote()
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 La classe
DatabricksSession
de la méthoderemote()
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
etcluster_id
dansDatabricksSession.builder.remote()
. - Utilisez la classe
Config
du Kit de développement logiciel (SDK) de Databricks. - Spécifiez un profil de configuration Databricks avec le champ
cluster_id
. - Définissez la chaîne de connexion Spark Connect dans
DatabricksSession.builder.remote()
.
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 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() # 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() # 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() # Set the Spark Connect connection string in DatabricksSession.builder.remote. from databricks.connect import DatabricksSession workspace_instance_name = retrieve_workspace_instance_name() token = retrieve_token() cluster_id = retrieve_cluster_id() spark = DatabricksSession.builder.remote( f"sc://{workspace_instance_name}:443/;token={token};x-databricks-cluster-id={cluster_id}" ).getOrCreate()
- Définissez les champs et
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 que vous souhaitez utiliser.Les champs de profil de configuration requis pour chaque type d'authentification sont les suivants :
- Pour l’authentification par jeton d’accès personnel Azure Databricks:
host
ettoken
. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
host
,client_id
etclient_secret
. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
host
. - Pour l’authentification avec un principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
et éventuellementazure_workspace_resource_id
. - Pour l'authentification Azure CLI:
host
. - Pour l’authentification des identités managées Azure (si prise en charge) :
host
,azure_use_msi
,azure_client_id
et éventuellementazure_workspace_resource_id
.
Définissez ensuite le nom de ce profil de configuration via la classe
Config
.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
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 besoin de spécifiercluster_id
.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: from databricks.connect import DatabricksSession spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate() # 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()
- Pour l’authentification par jeton d’accès personnel Azure Databricks:
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 :from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate()
Pour définir des variables d’environnement, consultez la documentation de votre système d’exploitation.
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 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écifiercluster_id
.Les champs de profil de configuration requis pour chaque type d'authentification sont les suivants :
- Pour l’authentification par jeton d’accès personnel Azure Databricks:
host
ettoken
. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
host
,client_id
etclient_secret
. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
host
. - Pour l’authentification avec un principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
et éventuellementazure_workspace_resource_id
. - Pour l'authentification Azure CLI:
host
. - Pour l’authentification des identités managées Azure (si prise en charge) :
host
,azure_use_msi
,azure_client_id
et éventuellementazure_workspace_resource_id
.
Attribuez à la variable d’environnement
DATABRICKS_CONFIG_PROFILE
le nom de ce profil de configuration. Puis initialisez la classeDatabricksSession
comme suit :from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate()
Pour définir des variables d’environnement, consultez la documentation de votre système d’exploitation.
- Pour l’authentification par jeton d’accès personnel Azure Databricks:
Une variable d’environnement pour chaque propriété de connexion
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 jeton d’accès personnel Azure Databricks:
DATABRICKS_HOST
etDATABRICKS_TOKEN
. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
etDATABRICKS_CLIENT_SECRET
. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
DATABRICKS_HOST
. - Pour l’authentification avec un principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
DATABRICKS_HOST
,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
et éventuellementDATABRICKS_AZURE_RESOURCE_ID
. - Pour l'authentification Azure CLI:
DATABRICKS_HOST
. - Pour l’authentification des identités managées Azure (si prise en charge) :
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
et éventuellementDATABRICKS_AZURE_RESOURCE_ID
.
Puis initialisez la classe
DatabricksSession
comme suit :from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate()
Pour définir des variables d’environnement, consultez la documentation de votre système d’exploitation.
- Pour l’authentification par jeton d’accès personnel Azure Databricks:
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 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écifiercluster_id
.Les champs de profil de configuration requis pour chaque type d'authentification sont les suivants :
- Pour l’authentification par jeton d’accès personnel Azure Databricks:
host
ettoken
. - Pour l’Authentification machine à machine (M2M) OAuth (là où elle est prise en charge) :
host
,client_id
etclient_secret
. - Pour l’authentification utilisateur à machine (U2M) OAuth (lorsqu’elle est prise en charge) :
host
. - Pour l’authentification avec un principal de service Microsoft Entra ID (anciennement Azure Active Directory) :
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
et éventuellementazure_workspace_resource_id
. - Pour l'authentification Azure CLI:
host
. - Pour l’authentification des identités managées Azure (si prise en charge) :
host
,azure_use_msi
,azure_client_id
et éventuellementazure_workspace_resource_id
.
Nommez ce profil de configuration
DEFAULT
.Puis initialisez la classe
DatabricksSession
comme suit :from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate()
- Pour l’authentification par jeton d’accès personnel Azure Databricks:
Vérifier votre environnement et la connexion au cluster Databricks
La commande suivante vérifie que votre environnement, les informations d’identification par défaut et la connexion au cluster sont toutes correctement configurées pour Databricks Connect.
databricks-connect test
Cette commande récupère les informations d’identification par défaut configurées sur l’environnement (comme le profil de configuration
DEFAULT
ou via des variables d’environnement).La commande échoue avec un code de sortie non nul et un message d’erreur correspondant quand elle détecte une incompatibilité dans la configuration.
En outre, vous pouvez aussi utiliser le shell
pyspark
qui est inclus dans le cadre de Databricks Connect pour Python. Démarrez le shell en exécutant :pyspark
L’interpréteur de commandes Spark s’affiche, par exemple :
Python 3.10 ... [Clang ...] on darwin Type "help", "copyright", "credits" or "license" for more information. Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 13.0 /_/ Using Python version 3.10 ... Client connected to the Spark Connect server at sc://...:.../;token=...;x-databricks-cluster-id=... SparkSession available as 'spark'. >>>
À l’invite
>>>
, exécutez une commande PySpark simple, telle quespark.range(1,10).show()
. S’il n’y a pas d’erreur, vous vous êtes connecté.Si vous vous êtes connecté, pour arrêter l’interpréteur de commandes Spark, appuyez sur
Ctrl + d
ouCtrl + z
, ou exécutez la commandequit()
ouexit()
.Pour plus d’informations sur le fichier binaire
databricks-connect
, consultez Utilisation avancée de Databricks Connect pour Python.