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.
Note
Cet article traite de Databricks Connect pour Databricks Runtime 14.0 et versions ultérieures.
Cet article décrit les rubriques qui vont au-delà de 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 Configurer une connexion à un cluster, une option plus avancée se connecte à l’aide de la chaîne de connexion Spark Connect. Vous pouvez passer la chaîne dans la remote fonction ou définir la variable d’environnement SPARK_REMOTE .
Note
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.
Python
Pour définir la chaîne de connexion à l’aide de la remote fonction :
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 également définir la variable d’environnement SPARK_REMOTE :
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Initialisez ensuite la DatabricksSession classe :
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Scala
Définissez la variable d’environnement SPARK_REMOTE :
sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Initialisez ensuite la DatabricksSession classe :
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.getOrCreate()
Utiliser le serveur Spark Connect avec Databricks Connect
Vous pouvez éventuellement exécuter Databricks Connect sur un serveur Spark Connect open source.
Important
Certaines fonctionnalités disponibles dans Databricks Runtime et Databricks Connect sont exclusives à Databricks ou pas encore publiées dans Apache Spark open source. Si votre code s’appuie sur ces fonctionnalités, les étapes suivantes peuvent échouer avec des erreurs.
Démarrez un serveur Spark Connect local. Découvrez comment utiliser Spark Connect
Configurez Databricks Connect. Définissez la variable
SPARK_REMOTEd’environnement pour qu’elle pointe vers votre serveur Spark Connect local. Consultez Connexion à Spark Connect à l’aide de clients.export SPARK_REMOTE="sc://localhost"Initialisez la session Databricks :
Python
from databricks.connect import DatabricksSession spark = DatabricksSession.builder.getOrCreate()Scala
import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder.getOrCreate()
En-têtes HTTP supplémentaires
Databricks Connect communique avec les clusters Databricks via gRPC via HTTP/2.
Pour mieux contrôler les demandes provenant de clients, les utilisateurs avancés peuvent choisir d’installer un service proxy entre le client et le cluster Azure Databricks. Dans certains cas, les proxys peuvent nécessiter des en-têtes personnalisés dans les requêtes HTTP.
Utilisez la méthode header() pour ajouter des en-têtes personnalisés aux requêtes HTTP :
Python
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.header('x-custom-header', 'value').getOrCreate()
Scala
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder.header("x-custom-header", "value").getOrCreate()
Certificats
Si votre cluster s’appuie sur un certificat SSL/TLS personnalisé pour résoudre un nom de domaine complet de l’espace de travail Azure Databricks (FQDN), vous devez définir la variable GRPC_DEFAULT_SSL_ROOTS_FILE_PATH d’environnement sur votre ordinateur de développement local. Cette variable d’environnement doit être définie sur le chemin complet du certificat installé sur le cluster.
Python
L’exemple suivant définit cette variable d’environnement :
import os
os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "/etc/ssl/certs/ca-bundle.crt"
Pour obtenir d’autres façons de définir des variables d’environnement, consultez la documentation de votre système d’exploitation.
Scala
Java et Scala n’offrent pas de moyens de configurer des variables d’environnement par programmation. Reportez-vous à la documentation de votre système d’exploitation ou ide pour plus d’informations sur la façon de les configurer dans le cadre de votre application.
Journalisation et journaux de débogage
Python
Databricks Connect pour Python produit des journaux à l’aide de la journalisation Python standard.
Les journaux sont émis dans le flux d’erreur standard (stderr) et par défaut, ils sont désactivés.
La définition d’une variable d’environnement SPARK_CONNECT_LOG_LEVEL=debug modifie ce comportement par défaut et affiche tous les messages de journal au niveau DEBUG et au-delà.
Scala
Databricks Connect pour Scala utilise la journalisation SLF4J et n’est fourni avec aucun fournisseur SLF4J.
Les applications utilisant Databricks Connect sont censées inclure un fournisseur SLF4J et, dans certains cas, configurées pour imprimer les messages de journal.
- L’option la plus simple consiste à inclure le provider slf4j-simple qui imprime les messages de journal au niveau
INFOet supérieur dans le flux standard d'erreurs (stderr). - Une alternative plus configurable consiste à utiliser le fournisseur slf4j-reload4j qui récupère la configuration à partir d’un
log4j.propertiesfichier dans le classpath.
L’exemple suivant montre un fichier simple log4j.properties .
log4j.rootLogger=INFO,stderr
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n
Dans l’exemple précédent, les logs de débogage sont affichés si le logger racine (ou un logger spécifique) est configuré au DEBUG niveau :
log4j.rootLogger=DEBUG,stderr