Installieren von Databricks Connect für Scala
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 Scala installieren. Weitere Informationen finden Sie unter Was ist Databricks Connect?. Die Python-Version dieses Artikels finden Sie unter Installieren von Databricks Connect für Python.
Anforderungen
- Ihr Azure Databricks-Zielarbeitsbereich und -Zielcluster müssen die Anforderungen für die Clusterkonfiguration für Databricks Connect erfüllen.
- Das Java Development Kit (JDK) ist auf Ihrem Entwicklungscomputer installiert. Databricks empfiehlt, dass die Version Ihrer JDK-Installation, die Sie verwenden, mit der JDK-Version auf Ihrem Azure Databricks-Cluster übereinstimmt. Informationen zur JDK-Version auf Ihrem Cluster finden Sie im Abschnitt „Systemumgebung“, der Versionshinweise zu Databricks Runtime für Ihr Cluster enthält.
Zulu 8.70.0.23-CA-linux64
entspricht beispielsweise JDK 8. Weitere Informationen finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime. - Scala ist auf Ihrem Entwicklungscomputer installiert. Databricks empfiehlt, dass die Version Ihrer Scala-Installation mit der Scala-Version auf Ihrem Azure Databricks-Cluster übereinstimmt. Informationen zur Scala-Version auf Ihrem Cluster finden Sie im Abschnitt „Systemumgebung“ der Versionshinweise zu Databricks Runtime für Ihr Cluster. Weitere Informationen finden Sie unter Versionshinweise, Versionen und Kompatibilität von Databricks Runtime.
- Es gibt ein Scala-Buildtool auf Ihrem Entwicklungscomputer, z. B.
sbt
.
Einrichten des Clients
Nachdem Sie die Anforderungen für Databricks Connect erfüllt haben, schließen Sie die folgenden Schritte ab, um den Databricks Connect-Client einzurichten.
Schritt 1: Hinzufügen eines Verweises auf den Databricks Connect-Client
Fügen Sie in der Builddatei Ihres Scala-Projekts wie z. B.
build.sbt
fürsbt
,pom.xml
für Maven oderbuild.gradle
für Gradle den folgenden Verweis auf den Databricks Connect-Client hinzu:Sbt
libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
Maven
<dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect</artifactId> <version>14.0.0</version> </dependency>
Gradle
implementation 'com.databricks.databricks-connect:14.0.0'
Ersetzen Sie
14.0.0
durch die Version der Databricks Connect-Bibliothek, die der Databricks-Runtime-Version auf Ihrem Cluster entspricht. Die Versionsnummern der Databricks Connect-Bibliothek finden Sie im zentralen Maven-Repository.
Schritt 2: Konfigurieren von Verbindungseigenschaften
In diesem Abschnitt konfigurieren Sie Eigenschaften, um eine Verbindung zwischen Databricks Connect und Ihrem Azure Databricks-Remotecluster herzustellen. Diese Eigenschaften umfassen Einstellungen zum Authentifizieren von Databricks Connect bei Ihrem Cluster.
Für Databricks Connect für Databricks Runtime 13.3 LTS und höher umfasst Databricks Connect das Databricks SDK für Java für Scala. Dieses SDK implementiert den Standard für die einheitliche Databricks-Clientauthentifizierung, einen konsolidierten und konsistenten architektonischen und programmgesteuerten Ansatz für die Authentifizierung. Dieser Ansatz gestaltet die Einrichtung und Automatisierung der Authentifizierung mit Azure Databricks zentralisierter und vorhersagbarer. Er ermöglicht Ihnen, die Azure Databricks-Authentifizierung einmal zu konfigurieren und diese Konfiguration dann für mehrere Azure Databricks-Tools und -SDKs ohne weitere Änderungen an der Authentifizierungskonfiguration zu verwenden.
Hinweis
Die OAuth-User-to-Machine-Authentifizierung (U2M) wird unter Databricks SDK für Java 0.18.0 und höher unterstützt. Möglicherweise müssen Sie die installierte Version ihres Codeprojekts des Databricks SDK für Java auf 0.18.0 oder höher aktualisieren, um die OAuth U2M-Authentifizierung zu verwenden. Weitere Informationen unter Erste Schritte mit dem Databricks SDK für Java.
Für die OAuth U2M-Authentifizierung müssen Sie die Databricks CLI verwenden, um sich zu authentifizieren, bevor Sie Ihren Scala-Code ausführen. Weitere Informationen finden Sie im Tutorial.
OAuth Machine-to-Machine-Authentifizierung (M2M) wird unter Databricks SDK für Java 0.17.0 und höher unterstützt. Möglicherweise müssen Sie die installierte Version des Databricks SDK für Java auf 0.17.0 oder höher aktualisieren, um die OAuth U2M-Authentifizierung zu verwenden. Weitere Informationen unter Erste Schritte mit dem Databricks SDK für Java.
Das Databricks SDK für Java hat noch keine Authentifizierung mit von Azure verwalteten Identitäten implementiert.
Sammeln Sie die folgenden Konfigurationseigenschaften.
- Den Instanzennamen des Arbeitsbereichs von Azure Databricks. Dies entspricht dem Wert des Hostnamen des Servers für Ihren Cluster. Weitere Informationen finden Sie unter Abrufen von Verbindungsdetails für eine Azure Databricks-Computeressource.
- Die ID Ihres Clusters. Sie können die Cluster-ID über die URL abrufen. Weitere Informationen finden Sie unter Cluster-URL und -ID.
- Alle anderen Eigenschaften, die für den unterstützten Databricks-Authentifizierungstyp erforderlich sind. Diese Eigenschaften werden in diesem Abschnitt beschrieben.
Konfigurieren Sie die Verbindung innerhalb Ihres Codes. Databricks Connect sucht nach Konfigurationseigenschaften in der folgenden Reihenfolge, bis diese gefunden werden. Sobald sie gefunden werden, wird die Suche nach den verbleibenden Optionen beendet. Die Details für jede Option werden nach der folgenden Tabelle angezeigt:
Konfigurationseigenschaftenoption Gilt für: 1. Die remote()
-Methode derDatabricksSession
-KlasseNur Authentifizierung mit persönlichem Zugriffstoken für Azure Databricks 2. Ein Azure Databricks-Konfigurationsprofil Alle Azure Databricks-Authentifizierungstypen 3. Die SPARK_REMOTE
-UmgebungsvariableNur Authentifizierung mit persönlichem Zugriffstoken für Azure Databricks 4. Die DATABRICKS_CONFIG_PROFILE
-UmgebungsvariableAlle Azure Databricks-Authentifizierungstypen 5. Eine Umgebungsvariable für jede Konfigurationseigenschaft Alle Azure Databricks-Authentifizierungstypen 6. Ein Azure Databricks-Konfigurationsprofil mit dem Namen DEFAULT
Alle Azure Databricks-Authentifizierungstypen Die
remote()
-Methode derDatabricksSession
-KlasseGeben 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
undclusterId
inDatabricksSession.builder
fest. - Verwenden Sie die
Config
-Klasse des Databricks SDK. - Geben Sie ein Databricks-Konfigurationsprofil zusammen mit dem
clusterId
Feld an.
Databricks empfiehlt nicht, diese Verbindungseigenschaften direkt in Ihrem Code anzugeben. Stattdessen empfiehlt Databricks, Eigenschaften über Umgebungsvariablen oder Konfigurationsdateien zu konfigurieren, wie in späteren Optionen beschrieben. In den folgenden Codebeispielen wird davon ausgegangen, dass Sie selbst 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 jede dieser Ansätze lautet wie folgt:
// Set the host, token, and clusterId fields in DatabricksSession.builder. // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the // cluster's ID, you do not also need to set the clusterId field here. import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder() .host(retrieveWorkspaceInstanceName()) .token(retrieveToken()) .clusterId(retrieveClusterId()) .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 clusterId field here. import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setHost(retrieveWorkspaceInstanceName()) .setToken(retrieveToken()) val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate() // Specify a Databricks configuration profile along with the clusterId 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 clusterId field here. import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate()
- Legen Sie die Felder
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 unterstützten 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
DatabricksConfig
-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
clusterId
-Feld an.
Wenn Sie die
DATABRICKS_CLUSTER_ID
-Umgebungsvariable bereits mit der Cluster-ID festgelegt haben, müssen Sie die Feldercluster_id
oderclusterId
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: import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .getOrCreate() // Specify the configuration profile name along with the clusterId field. // In this example, retrieveClusterId() assumes some custom implementation that // you provide to get the cluster ID from the user or from some other // configuration store: import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate()
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken:
Die
SPARK_REMOTE
-UmgebungsvariableLegen Sie für diese Option, die nur für die Authentifizierung mit persönlichem Zugriffstoken in Azure Databricks gilt, die
SPARK_REMOTE
-Umgebungsvariable auf die folgende Zeichenfolge fest, und ersetzen Sie die Platzhalter durch die entsprechenden Werte.sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Initialisieren Sie dann die
DatabricksSession
-Klasse wie folgt:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Informationen zum Festlegen von Umgebungsvariablen finden Sie in der Dokumentation des Betriebssystems.
Die
DATABRICKS_CONFIG_PROFILE
-UmgebungsvariableErstellen oder identifizieren Sie für diese Option ein Azure Databricks-Konfigurationsprofil mit dem Feld
cluster_id
und allen anderen Felder, die für den unterstützten 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 Siecluster_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 dieDatabricksSession
-Klasse wie folgt:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Informationen zum Festlegen von Umgebungsvariablen finden Sie in der Dokumentation des Betriebssystems.
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken:
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 unterstützten 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:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Informationen zum Festlegen von Umgebungsvariablen finden Sie in der Dokumentation des Betriebssystems.
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken:
Ein Azure Databricks-Konfigurationsprofil mit 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 unterstützten 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 Siecluster_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:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- Für die Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken: