Delen via


Geavanceerd gebruik van Databricks Connect voor Python

Notitie

Dit artikel bevat informatie over Databricks Connect voor Databricks Runtime 14.0 en hoger.

In dit artikel worden onderwerpen beschreven die verder gaan dan de basisinstallatie van Databricks Connect.

De Spark Connect-verbindingsreeks configureren

Naast het maken van verbinding met uw cluster met behulp van de opties die worden beschreven in Een verbinding met een cluster configureren, is er een geavanceerdere optie om verbinding te maken met behulp van de Spark Connect-verbindingsreeks. U kunt de tekenreeks doorgeven in de remote functie of de SPARK_REMOTE omgevingsvariabele instellen.

Notitie

U kunt alleen een persoonlijke toegangstokenverificatie van Databricks gebruiken om verbinding te maken met behulp van de Spark Connect-verbindingsreeks.

De verbindingsreeks instellen met behulp van de remote functie:

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

U kunt ook de SPARK_REMOTE omgevingsvariabele instellen:

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

Initialiseer vervolgens de DatabricksSession klasse als volgt:

from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Pyspark-shell

Databricks Connect voor Python wordt geleverd met een pyspark binair bestand dat een PySpark REPL (een Spark-shell) is die is geconfigureerd voor het gebruik van Databricks Connect. De REPL kan worden gestart door het volgende uit te voeren:

pyspark

Wanneer er geen aanvullende parameters zijn, worden standaardreferenties opgehaald uit de omgeving (bijvoorbeeld de DATABRICKS_ omgevingsvariabelen of het DEFAULT configuratieprofiel) om verbinding te maken met het Azure Databricks-cluster.

Zodra de REPL is gestart, is het spark object beschikbaar om Apache Spark-opdrachten uit te voeren op het Databricks-cluster.

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

De REPL kan worden geconfigureerd om verbinding te maken met een andere externe verbinding door de --remote parameter te configureren met een Spark-verbinding verbindingsreeks.

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

Als u de shell wilt stoppen, drukt Ctrl + d of Ctrl + zvoert u de opdracht quit() of exit().

Aanvullende HTTP-headers

Databricks Connect communiceert met de Databricks-clusters via gRPC via HTTP/2.

Sommige geavanceerde gebruikers kunnen ervoor kiezen om een proxyservice te installeren tussen de client en het Azure Databricks-cluster, om betere controle te hebben over de aanvragen die afkomstig zijn van hun clients.

Voor de proxy's zijn in sommige gevallen mogelijk aangepaste headers in de HTTP-aanvragen vereist.

De headers() methode kan worden gebruikt om aangepaste headers toe te voegen aan hun HTTP-aanvragen.

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

Certificaten

Als uw cluster afhankelijk is van een aangepast SSL/TLS-certificaat om een FQDN (Fully Qualified Domain Name) van een Azure Databricks-werkruimte op te lossen, moet u de omgevingsvariabele GRPC_DEFAULT_SSL_ROOTS_FILE_PATH instellen op uw lokale ontwikkelcomputer. Deze omgevingsvariabele moet worden ingesteld op het volledige pad naar het geïnstalleerde certificaat op het cluster.

U stelt deze omgevingsvariabele bijvoorbeeld als volgt in Python-code in:

import os

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

Zie de documentatie van uw besturingssysteem voor andere manieren om omgevingsvariabelen in te stellen.

Logboekregistratie en foutopsporingslogboeken

Databricks Connect voor Python produceert logboeken met behulp van standaard Python-logboekregistratie.

Logboeken worden verzonden naar de standaardfoutstroom (stderr) en ze zijn standaard alleen logboeken op WAARSCHUWINGsniveau en hoger worden verzonden.

Als u een omgevingsvariabele instelt, wordt deze standaardinstelling SPARK_CONNECT_LOG_LEVEL=debug gewijzigd en worden alle logboekberichten op niveau DEBUG en hoger afgedrukt.