Partage via


Utilisation avancée de Databricks Connect pour Python

Remarque

Cet article traite de Databricks Connect pour Databricks Runtime 14.0 et versions ultérieures.

Cet article décrit les rubriques qui dépassent la configuration de base de Databricks Connect.

Configurer la chaîne de connexion Spark Connect

Outre la connexion à votre cluster à l’aide des options décrites dans la section Configurer une connexion à un cluster, une option plus avancée consiste à se connecter à l’aide de la chaîne de connexion Spark Connect. Vous pouvez transmettre la chaîne dans la fonction remote ou définir la variable d’environnement SPARK_REMOTE.

Remarque

Vous ne pouvez utiliser qu’une authentification par jeton d’accès personnel Databricks pour vous connecter à l’aide de la chaîne de connexion Spark Connect.

Pour obtenir la chaîne de connexion en utilisant la fonction remote :

# 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()

Vous pouvez aussi définir la variable d’environnement SPARK_REMOTE :

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()

Interpréteur de commandes PySpark

Databricks Connect pour Python est fourni avec un fichier binaire pyspark qui est un REPL PySpark (interpréteur de commandes Spark) configuré pour utiliser Databricks Connect. Le REPL peut être démarré en exécutant :

pyspark

Lorsqu’il est démarré sans paramètre supplémentaire, il récupère les informations d’identification par défaut de l’environnement (par exemple, les variables d’environnement DATABRICKS_ ou le profil de configuration DEFAULT) pour se connecter au cluster Azure Databricks.

Une fois le REPL démarré, l’objet spark est disponible et configuré pour exécuter des commandes Apache Spark sur le cluster Databricks.

>>> spark.range(3).show()
+---+
| id|
+---+
|  0|
|  1|
|  2|
+---+

Le REPL peut être configuré pour se connecter à un autre distant en configurant le paramètre --remote avec une chaîne de connexion Spark Connect.

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

Pour arrêter l’interpréteur de commandes, appuyez sur Ctrl + d ou sur Ctrl + z, ou exécutez la commande quit() ou exit().

En-têtes HTTP supplémentaires

Databricks Connect communique avec les clusters Databricks au moyen gRPC par HTTP/2.

Certains utilisateurs avancés peuvent choisir d’installer un service proxy entre le client et le cluster Azure Databricks afin de mieux contrôler les requêtes provenant de leurs clients.

Dans certains cas, les proxys peuvent nécessiter des en-têtes personnalisés dans les requêtes HTTP.

La méthode headers() peut être utilisée pour ajouter des en-têtes personnalisés à leurs requêtes HTTP.

spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()

Certificats

Si votre cluster s’appuie sur un certificat de protocole SSL/TLS personnalisé pour résoudre le nom de domaine complet (FQDN) d’un espace de travail Azure Databricks, vous devez définir la variable d’environnement GRPC_DEFAULT_SSL_ROOTS_FILE_PATH sur votre machine de développement locale. Vous devez définir cette variable d’environnement sur le chemin d’accès complet au certificat installé sur le cluster.

Par exemple, vous définissez cette variable d’environnement dans du code Python comme suit :

import os

os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"

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

Journalisation et journaux de débogage

Databricks Connect pour Python produit des journaux à l’aide de la journalisation Python standard.

Les journaux d’activité sont émis vers le flux d’erreur standard (stderr) et, par défaut, ils ne sont que les journaux d’activité de niveau WARN, avec des versions supérieures émises.

La définition d’une variable d’environnement SPARK_CONNECT_LOG_LEVEL=debug modifie cette valeur par défaut et imprime tous les messages de journal au niveau DEBUG et supérieur.