Installieren von Databricks Connect für Python
Hinweis
Dieser Artikel behandelt Databricks Connect für Databricks Runtime Version 13.3 LTS und höher.
In diesem Artikel wird beschrieben, wie Sie Databricks Connect für Python installieren. Weitere Informationen finden Sie unter Was ist Databricks Connect?. Die Scala-Version dieses Artikels finden Sie unter Installieren von Databricks Connect für Scala.
Anforderungen
Um Databricks Connect für Python zu installieren, müssen die folgenden Anforderungen erfüllt sein:
Wenn Sie eine Verbindung mit serverlosem Computeherstellen, muss Ihr Arbeitsbereich die Anforderungen für den serverlosen Compute erfüllen.
Hinweis
Serverloses Computing wird in Databricks Connect, Version 15.1 und höher, unterstützt. Darüber hinaus sind Databricks Connect-Versionen bei oder niedriger als die Databricks Runtime-Version auf serverlosen Servern vollständig kompatibel. (Siehe Versionshinweise). Informationen zum Überprüfen, ob die Databricks Connect-Version mit serverlosem Computing kompatibel ist, finden Sie unter Validieren Sie die Verbindung zu Databricks.
Wenn Sie eine Verbindung mit einem Clusterherstellen, muss Ihr Zielcluster die Anforderungen an die Clusterkonfiguration erfüllen, die Datenbricks Runtime-Versionsanforderungen enthält.
Sie müssen Python 3 auf Ihrem Entwicklungscomputer installiert haben, und die Nebenversion von Python auf Ihrem Entwicklungscomputer muss die Versionsanforderungen in der nachstehenden Tabelle erfüllen.
Computetyp Databricks Connect-Version Kompatible Python-Version Serverlos 15.1 und höher 3.11 Cluster 15.1 und höher 3.11 Cluster 13.3 LTS bis 14.3 LTS 3.10 Wenn Sie PySpark UDFs verwenden möchten, muss die installierte Nebenversion Ihres Entwicklungscomputers mit der Nebenversion von Python übereinstimmen, die in der Databricks Runtime enthalten ist, die auf dem Cluster oder serverlosen Compute installiert ist. Informationen zur Python-Nebenversion Ihres Clusters finden Sie im Abschnitt Systemumgebung der Databricks Runtime-Versionshinweise zu Ihrem Cluster oder serverlosen Compute. Siehe Versionshinweise zu Databricks Runtime- und Kompatibilität und den Serverlosen Compute-Versionshinweisen.
Aktivieren einer virtuellen Python-Umgebung
Databricks empfiehlt dringend, eine virtuelle Python-Umgebung für jede Python-Version zu aktivieren, die Sie mit Databricks Connect verwenden. Mithilfe virtueller Python-Umgebungen kann sichergestellt werden, dass Sie die richtigen Versionen von Python und Databricks Connect zusammen verwenden. Weitere Informationen zu diesen Tools und zur Aktivierung finden Sie unter venv oder Poetry.
Installieren Sie den Databricks Connect-Client.
In diesem Abschnitt wird beschrieben, wie Sie den Databricks Connect-Client mit venv oder Poetry installieren.
Hinweis
Wenn Sie die Databricks-Erweiterung für Visual Studio Code bereits installiert haben, müssen Sie diese Setupanweisungen nicht befolgen, da die Databricks-Erweiterung für Visual Studio Code bereits integrierte Unterstützung für Databricks Connect für Databricks Runtime 13.3 LTS und höher verfügt. Gehen Sie zu Debugcode mithilfe von Databricks Connect für die Databricks-Erweiterung für Visual Studio Code.
Installieren des Databricks Connect-Clients mit venv
Wenn Ihre virtuelle Umgebung aktiviert ist, deinstallieren Sie PySpark, falls es bereits installiert ist, indem Sie den
uninstall
-Befehl ausführen. Dieser Schritt ist erforderlich, da dasdatabricks-connect
-Paket mit PySpark in Konflikt steht. Weitere Informationen finden Sie unter In Konflikt stehende PySpark-Installationen. Um zu überprüfen, ob PySpark bereits installiert ist, führen Sie denshow
-Befehl aus.# Is PySpark already installed? pip3 show pyspark # Uninstall PySpark pip3 uninstall pyspark
Wenn Ihre virtuelle Umgebung immer noch aktiviert ist, installieren Sie den Databricks Connect-Client, indem Sie den
install
-Befehl ausführen. Verwenden Sie die--upgrade
-Option, um für alle vorhandenen Clientinstallationen ein Upgrade auf die angegebene Version durchzuführen.pip3 install --upgrade "databricks-connect==15.4.*" # Or X.Y.* to match your cluster version.
Hinweis
Databricks empfiehlt, die Notation „Punkt-Sternchen“ anzufügen, um
databricks-connect==X.Y.*
anstelle vondatabricks-connect=X.Y
anzugeben, um sicherzustellen, dass das neueste Paket installiert ist. Dies ist zwar keine Anforderung, aber es hilft sicherzustellen, dass Sie die aktuellen unterstützten Features für diesen Cluster verwenden können.
Fahren Sie mit Konfigurieren von Verbindungseigenschaften fort.
Installieren des Databricks Connect-Clients mit Poetry
Wenn Ihre virtuelle Umgebung aktiviert ist, deinstallieren Sie PySpark, falls es bereits installiert ist, indem Sie den
remove
-Befehl ausführen. Dieser Schritt ist erforderlich, da dasdatabricks-connect
-Paket mit PySpark in Konflikt steht. Weitere Informationen finden Sie unter In Konflikt stehende PySpark-Installationen. Um zu überprüfen, ob PySpark bereits installiert ist, führen Sie denshow
-Befehl aus.# Is PySpark already installed? poetry show pyspark # Uninstall PySpark poetry remove pyspark
Wenn Ihre virtuelle Umgebung immer noch aktiviert ist, installieren Sie den Databricks Connect-Client, indem Sie den
add
-Befehl ausführen.poetry add databricks-connect@~15.4 # Or X.Y to match your cluster version.
Hinweis
Databricks empfiehlt, die Notation „@-Tilde“ zu verwenden, um
databricks-connect@~15.4
anstelle vondatabricks-connect==15.4
anzugeben und sicherzustellen, dass das neueste Paket installiert ist. Dies ist zwar keine Anforderung, aber es hilft sicherzustellen, dass Sie die aktuellen unterstützten Features für diesen Cluster verwenden können.
Verbindungseigenschaften konfigurieren
In diesem Abschnitt konfigurieren Sie Eigenschaften, um eine Verbindung zwischen Databricks Connect und Ihrem Azure Databricks-Cluster oder serverlosen Compute herzustellen, was Folgendes umfasst:
- Den Instanzennamen des Arbeitsbereichs von Azure Databricks. Dies ist der Wert für Serverhostname für Ihr Compute. Weitere Informationen finden Sie unter Abrufen von Verbindungsdetails für eine Azure Databricks-Computeressource.
- Alle anderen Eigenschaften, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.
Hinweis
Die OAuth-User-to-Machine-Authentifizierung (U2M) wird unter Databricks SDK für Python 0.19.0 und höher unterstützt. Möglicherweise müssen Sie die installierte Version ihres Codeprojekts des Databricks SDK für Python auf 0.19.0 oder höher aktualisieren, um die OAuth U2M-Authentifizierung zu verwenden. Weitere Informationen unter Erste Schritte mit dem Databricks SDK für Python.
Für die OAuth U2M-Authentifizierung müssen Sie die Databricks CLI verwenden, um sich zu authentifizieren, bevor Sie Ihren Python-Code ausführen. Weitere Informationen finden Sie im Tutorial.
OAuth Machine-to-Machine (M2M)-Authentifizierung OAuth Machine-to-Machine (M2M)-Authentifizierung wird unter Databricks SDK für Python 0.18.0 und höher unterstützt. Möglicherweise müssen Sie die installierte Version ihres Codeprojekts des Databricks SDK für Python auf 0.18.0 oder höher aktualisieren, um die OAuth M2M-Authentifizierung zu verwenden. Weitere Informationen unter Erste Schritte mit dem Databricks SDK für Python.
Das Databricks SDK für Python hat noch keine Authentifizierung mit von Azure verwalteten Identitäten implementiert.
Konfigurieren einer Verbindung mit einem Cluster
Um eine Verbindung mit einem Cluster zu konfigurieren, benötigen Sie die ID Ihres Clusters. Sie können die Cluster-ID über die URL abrufen. Weitere Informationen finden Sie unter Cluster-URL und -ID.
Sie können die Verbindung mit Ihrem Cluster auf eine der folgenden Arten konfigurieren. Databricks Connect sucht in der folgenden Reihenfolge nach Konfigurationseigenschaften und verwendet die erste gefundene Konfiguration. Erweiterte Konfigurationsinformationen finden Sie unter Erweiterte Verwendung von Databricks Connect for Python.
- Die Remote()-Methode der DatabricksSession-Klasse.
- Ein Databricks-Konfigurationsprofil
- Die Umgebungsvariable DATABRICKS_CONFIG_PROFILE
- Eine Umgebungsvariable für jede Verbindungseigenschaft
- Ein Azure Databricks-Konfigurationsprofil mit dem Namen DEFAULT
Die remote()
-Methode der DatabricksSession
-Klasse
Geben Sie für diese Option, die nur für die Authentifizierung mit persönlichem Zugriffstoken in Azure Databricks gilt, den Instanzname des Arbeitsbereichs, das persönliche Zugriffstoken in Azure Databricks und die ID des Clusters an.
Sie können die DatabricksSession
-Klasse auf verschiedene Arten initialisieren, und zwar wie folgt:
- Legen Sie die Felder
host
,token
undcluster_id
inDatabricksSession.builder.remote()
fest. - Verwenden Sie die
Config
-Klasse des Databricks SDK. - Geben Sie ein Databricks-Konfigurationsprofil zusammen mit dem
cluster_id
-Feld an. - Legen Sie die Spark Connect-Verbindungszeichenfolge in
DatabricksSession.builder.remote()
fest.
Anstatt diese Verbindungseigenschaften in Ihrem Code anzugeben, empfiehlt Databricks, Eigenschaften über Umgebungsvariablen oder Konfigurationsdateien zu konfigurieren, wie in diesem Abschnitt beschrieben. In den folgenden Codebeispielen wird davon ausgegangen, dass Sie eine Implementierung der vorgeschlagenen retrieve_*
-Funktionen bereitstellen, um die erforderlichen Eigenschaften vom Benutzer oder aus einem anderen Konfigurationsspeicher abzurufen, z. B. dem Azure KeyVault.
Der Code für jeden dieser Ansätze lautet wie folgt:
# 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()
Ein Azure Databricks-Konfigurationsprofil
Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id
und allen anderen Felder, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.
Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken:
host
undtoken
- Für OAuth-M2M-Authentifizierung (sofern unterstützt):
host
,client_id
undclient_secret
. - Für die OAuth-User-to-Machine-Authentifizierung (U2M) (wo unterstützt):
host
. - Für die Dienstprinzipalauthentifizierung in Microsoft Entra ID (früher Azure Active Directory):
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
und möglicherweiseazure_workspace_resource_id
. - Für die Azure CLI-Authentifizierung:
host
- Für die Authentifizierung mit von Azure verwalteten Identitäten (sofern unterstützt):
host
,azure_use_msi
,azure_client_id
und eventuellazure_workspace_resource_id
.
Legen Sie dann den Namen dieses Konfigurationsprofils über die Config
-Klasse fest.
Sie können cluster_id
auf verschiedene Arten wie folgt angeben:
- Fügen Sie das
cluster_id
-Feld in Ihr Konfigurationsprofil ein, und geben Sie dann einfach den Namen des Konfigurationsprofils an. - Geben Sie den Konfigurationsprofilnamen zusammen mit dem
cluster_id
-Feld an.
Wenn Sie die DATABRICKS_CLUSTER_ID
-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id
nicht ebenfalls angeben.
Der Code für jeden dieser Ansätze lautet wie folgt:
# 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()
Die DATABRICKS_CONFIG_PROFILE
-Umgebungsvariable
Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id
und allen anderen Felder, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.
Wenn Sie die DATABRICKS_CLUSTER_ID
-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id
nicht ebenfalls angeben.
Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken:
host
undtoken
- Für OAuth-M2M-Authentifizierung (sofern unterstützt):
host
,client_id
undclient_secret
. - Für die OAuth-User-to-Machine-Authentifizierung (U2M) (wo unterstützt):
host
. - Für die Dienstprinzipalauthentifizierung in Microsoft Entra ID (früher Azure Active Directory):
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
und möglicherweiseazure_workspace_resource_id
. - Für die Azure CLI-Authentifizierung:
host
- Für die Authentifizierung mit von Azure verwalteten Identitäten (sofern unterstützt):
host
,azure_use_msi
,azure_client_id
und eventuellazure_workspace_resource_id
.
Legen Sie die DATABRICKS_CONFIG_PROFILE
-Umgebungsvariable auf den Namen dieses Konfigurationsprofils fest. Initialisieren Sie dann die DatabricksSession
-Klasse wie folgt:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Eine Umgebungsvariable für jede Verbindungseigenschaft
Legen Sie für diese Option die DATABRICKS_CLUSTER_ID
-Umgebungsvariable und alle anderen Umgebungsvariablen fest, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.
Die folgenden Umgebungsvariablen sind für die einzelnen Authentifizierungstypen erforderlich:
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken:
DATABRICKS_HOST
undDATABRICKS_TOKEN
- Für OAuth-M2M-Authentifizierung (sofern unterstützt):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
undDATABRICKS_CLIENT_SECRET
. - Für die OAuth-User-to-Machine-Authentifizierung (U2M) (wo unterstützt):
DATABRICKS_HOST
. - Für die Dienstprinzipalauthentifizierung in Microsoft Entra ID (früher Azure Active Directory):
DATABRICKS_HOST
,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
und möglicherweiseDATABRICKS_AZURE_RESOURCE_ID
. - Für die Azure CLI-Authentifizierung:
DATABRICKS_HOST
- Für die Authentifizierung mit von Azure verwalteten Identitäten (sofern unterstützt):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
und eventuellDATABRICKS_AZURE_RESOURCE_ID
.
Initialisieren Sie dann die DatabricksSession
-Klasse wie folgt:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Ein Azure Databricks-Konfigurationsprofil mit dem Namen DEFAULT
Erstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld cluster_id
und allen anderen Felder, die für den Databricks-Authentifizierungstyp erforderlich sind, den Sie verwenden möchten.
Wenn Sie die DATABRICKS_CLUSTER_ID
-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie cluster_id
nicht ebenfalls angeben.
Die folgenden Konfigurationsprofilfelder sind für die einzelnen Authentifizierungstypen erforderlich:
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken:
host
undtoken
- Für OAuth-M2M-Authentifizierung (sofern unterstützt):
host
,client_id
undclient_secret
. - Für die OAuth-User-to-Machine-Authentifizierung (U2M) (wo unterstützt):
host
. - Für die Dienstprinzipalauthentifizierung in Microsoft Entra ID (früher Azure Active Directory):
host
,azure_tenant_id
,azure_client_id
,azure_client_secret
und möglicherweiseazure_workspace_resource_id
. - Für die Azure CLI-Authentifizierung:
host
- Für die Authentifizierung mit von Azure verwalteten Identitäten (sofern unterstützt):
host
,azure_use_msi
,azure_client_id
und eventuellazure_workspace_resource_id
.
Benennen Sie dieses Konfigurationsprofil DEFAULT
.
Initialisieren Sie dann die DatabricksSession
-Klasse wie folgt:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
Konfigurieren einer Verbindung mit serverlosem Compute
Wichtig
Dieses Feature befindet sich in der Public Preview.
Databricks Connect unterstützt die Verbindung mit serverlosem Compute. Um dieses Feature zu verwenden, müssen die Anforderungen für die Verbindung mit serverlosen Servern erfüllt sein. Siehe Anforderungen.
Wichtig
Für diese Funktion gelten folgende Einschränkungen:
- Alle Databricks Connect für Python-Einschränkungen
- Alle serverlosen Computebeschränkungen
- Nur Python-Abhängigkeiten, die als Teil der serverlosen Computeumgebung enthalten sind, können als UDFs verwendet werden. Siehe Systemumgebung. Zusätzliche Abhängigkeiten können nicht installiert werden.
- UDFs mit benutzerdefinierten Modulen werden nicht unterstützt.
Sie können eine Verbindung mit serverlosem Compute auf eine der folgenden Arten konfigurieren:
Legen Sie stattdessen die lokale Umgebungsvariable
DATABRICKS_SERVERLESS_COMPUTE_ID
aufauto
fest. Wenn diese Umgebungsvariable festgelegt ist, ignoriert Databricks Connect diecluster_id
.Legen Sie in einem lokalen Databricks-Konfigurationsprofil
serverless_compute_id = auto
fest, und verweisen Sie dann auf dieses Profil aus Ihrem Databricks Connect Python-Code.[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
Alternativ können Sie einfach Ihren Databricks Connect Python-Code wie folgt aktualisieren:
from databricks.connect import DatabricksSession as SparkSession spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession as SparkSession spark DatabricksSession.builder.remote(serverless=True).getOrCreate()
Hinweis
Die serverlose Computesitzung ist nach 10 Minuten Inaktivität nicht mehr vorhanden. Danach muss eine neue Spark-Sitzung erstellt werden, um eine Verbindung mit serverlosem Compute herzustellen. Dies kann mit spark = DatabricksSession.builder.serverless(True).getOrCreate()
erreicht werden.
Überprüfen der Verbindung mit Databricks
Um Ihre Umgebung zu überprüfen, werden Standardanmeldeinformationen und die Verbindung zur Berechnung ordnungsgemäß für Databricks Connect eingerichtet, führen Sie den databricks-connect test
-Befehl aus, der mit einem Nicht-Null-Exitcode fehlschlägt und eine entsprechende Fehlermeldung angezeigt wird, wenn eine Inkompatibilität im Setup erkannt wird.
databricks-connect test
Sie können Ihre Umgebung auch in Ihrem Python-Code überprüfen, indem Sie validateSession()
verwenden:
DatabricksSession.builder.validateSession(True).getOrCreate()