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 + z
voert 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.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor