Installera Databricks Anslut för Scala
Kommentar
Den här artikeln beskriver Databricks Anslut för Databricks Runtime 13.3 LTS och senare.
I den här artikeln beskrivs hur du installerar Databricks Anslut för Scala. Se Vad är Databricks Anslut?. Python-versionen av den här artikeln finns i Installera Databricks Anslut för Python.
Behov
- Din Azure Databricks-målarbetsyta och ditt kluster måste uppfylla kraven för klusterkonfiguration för Databricks Anslut.
- Java Development Kit (JDK) installerat på utvecklingsdatorn. Databricks rekommenderar att den version av JDK-installationen som du använder matchar JDK-versionen i ditt Azure Databricks-kluster. Information om hur du hittar JDK-versionen i klustret finns i avsnittet "Systemmiljö" i Viktig information om Databricks Runtime för klustret. Motsvarar till exempel
Zulu 8.70.0.23-CA-linux64
JDK 8. Se Viktig information om versioner och kompatibilitet för Databricks Runtime. - Scala installerat på utvecklingsdatorn. Databricks rekommenderar att versionen av din Scala-installation som du använder matchar Scala-versionen i ditt Azure Databricks-kluster. Information om hur du hittar Scala-versionen i klustret finns i avsnittet "Systemmiljö" i Viktig information om Databricks Runtime för klustret. Se Viktig information om versioner och kompatibilitet för Databricks Runtime.
- Ett Scala-byggverktyg på utvecklingsdatorn, till exempel
sbt
.
Konfigurera klienten
När du uppfyller kraven för Databricks Anslut utför du följande steg för att konfigurera Databricks Anslut-klienten.
Steg 1: Lägg till en referens till Databricks-Anslut-klienten
I Scala-projektets byggfil, till exempel
build.sbt
försbt
,pom.xml
för Maven ellerbuild.gradle
för Gradle, lägger du till följande referens till Databricks Anslut-klienten: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'
Ersätt
14.0.0
med den version av Databricks Anslut-biblioteket som matchar Databricks Runtime-versionen i klustret. Du hittar databricks-Anslut-biblioteksversionsnummer på den centrala Maven-lagringsplatsen.
Steg 2: Konfigurera anslutningsegenskaper
I det här avsnittet konfigurerar du egenskaper för att upprätta en anslutning mellan Databricks Anslut och ditt fjärranslutna Azure Databricks-kluster. Dessa egenskaper omfattar inställningar för att autentisera Databricks Anslut med klustret.
För Databricks Anslut för Databricks Runtime 13.3 LTS och senare inkluderar Databricks Anslut Databricks SDK för Java för Scala. Denna SDK implementerar Databricks-klientens enhetliga autentiseringsstandard, en konsoliderad och konsekvent arkitektur- och programmatisk metod för autentisering. Den här metoden gör det mer centraliserat och förutsägbart att konfigurera och automatisera autentisering med Azure Databricks. Det gör att du kan konfigurera Azure Databricks-autentisering en gång och sedan använda den konfigurationen över flera Azure Databricks-verktyg och SDK:er utan ytterligare autentiseringskonfigurationsändringar.
Kommentar
OAuth-autentisering från användare till dator (U2M) stöds på Databricks SDK för Java 0.18.0 och senare. Du kan behöva uppdatera kodprojektets installerade version av Databricks SDK för Java till 0.18.0 eller senare för att använda OAuth U2M-autentisering. Se Kom igång med Databricks SDK för Java.
För OAuth U2M-autentisering måste du använda Databricks CLI för att autentisera innan du kör Scala-koden. Se Självstudien.
M2M-autentisering (machine-to-machine) för OAuth stöds på Databricks SDK för Java 0.17.0 och senare. Du kan behöva uppdatera kodprojektets installerade version av Databricks SDK för Java till 0.17.0 eller senare för att använda OAuth U2M-autentisering. Se Kom igång med Databricks SDK för Java.
Databricks SDK för Java har ännu inte implementerat Azure-hanterad identitetsautentisering.
Samla in följande konfigurationsegenskaper.
- Instansnamnet för Azure Databricks-arbetsytan. Det här är samma som värdet servervärdnamn för klustret. Se Hämta anslutningsinformation för en Azure Databricks-beräkningsresurs.
- ID:t för klustret. Du kan hämta kluster-ID:t från URL:en. Se Kluster-URL och ID.
- Andra egenskaper som krävs för databricks-autentiseringstypen som stöds. Dessa egenskaper beskrivs i hela det här avsnittet.
Konfigurera anslutningen i koden. Databricks Anslut söker efter konfigurationsegenskaper i följande ordning tills de hittas. När den hittar dem slutar den att söka igenom de återstående alternativen. Informationen för varje alternativ visas efter följande tabell:
Alternativ för konfigurationsegenskaper Gäller för 1. Klassens DatabricksSession
remote()
metodEndast autentisering med personlig åtkomsttoken i Azure Databricks 2. En Azure Databricks-konfigurationsprofil Alla autentiseringstyper för Azure Databricks 3. Miljövariabeln SPARK_REMOTE
Endast autentisering med personlig åtkomsttoken i Azure Databricks 4. Miljövariabeln DATABRICKS_CONFIG_PROFILE
Alla autentiseringstyper för Azure Databricks 5. En miljövariabel för varje konfigurationsegenskap Alla autentiseringstyper för Azure Databricks 6. En Azure Databricks-konfigurationsprofil med namnet DEFAULT
Alla autentiseringstyper för Azure Databricks Klassens
DatabricksSession
remote()
metodFör det här alternativet, som endast gäller för autentisering med personlig åtkomsttoken i Azure Databricks, anger du namnet på arbetsytans instans, azure Databricks personliga åtkomsttoken och klustrets ID.
Du kan initiera klassen på
DatabricksSession
flera sätt på följande sätt:- Ange fälten
host
,token
ochclusterId
iDatabricksSession.builder
. - Använd Databricks SDK:s
Config
klass. - Ange en Databricks-konfigurationsprofil tillsammans med fältet
clusterId
.
Databricks rekommenderar inte att du direkt anger dessa anslutningsegenskaper i koden. I stället rekommenderar Databricks att du konfigurerar egenskaper via miljövariabler eller konfigurationsfiler, enligt beskrivningen i det här avsnittet. I följande kodexempel förutsätts att du tillhandahåller en viss implementering av de föreslagna
retrieve*
funktionerna själv för att hämta nödvändiga egenskaper från användaren eller från något annat konfigurationsarkiv, till exempel Azure KeyVault.Koden för var och en av dessa metoder är följande:
// 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()
- Ange fälten
En Azure Databricks-konfigurationsprofil
För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet
cluster_id
och andra fält som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
host
ochtoken
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
host
,client_id
ochclient_secret
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
host
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
host
, ,azure_tenant_id
azure_client_id
,azure_client_secret
och eventuelltazure_workspace_resource_id
. - För Azure CLI-autentisering:
host
. - För Azure-hanterad identitetsautentisering (där det stöds):
host
,azure_use_msi
,azure_client_id
och eventuelltazure_workspace_resource_id
.
Ange sedan namnet på den här konfigurationsprofilen via
DatabricksConfig
klassen.Du kan ange
cluster_id
på några sätt på följande sätt:- Inkludera fältet
cluster_id
i konfigurationsprofilen och ange sedan bara konfigurationsprofilens namn. - Ange namnet på konfigurationsprofilen tillsammans med fältet
clusterId
.
Om du redan har angett
DATABRICKS_CLUSTER_ID
miljövariabeln med klustrets ID behöver du inte heller ange fältencluster_id
ellerclusterId
.Koden för var och en av dessa metoder är följande:
// 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 personlig åtkomsttokenautentisering i Azure Databricks:
Miljövariabeln
SPARK_REMOTE
För det här alternativet, som endast gäller för autentisering med personlig åtkomsttoken i Azure Databricks, anger du
SPARK_REMOTE
miljövariabeln till följande sträng och ersätter platshållarna med lämpliga värden.sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Initiera sedan klassen enligt
DatabricksSession
följande:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Information om hur du anger miljövariabler finns i dokumentationen till operativsystemet.
Miljövariabeln
DATABRICKS_CONFIG_PROFILE
För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet
cluster_id
och andra fält som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.Om du redan har angett
DATABRICKS_CLUSTER_ID
miljövariabeln med klustrets ID behöver du inte heller angecluster_id
.De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
host
ochtoken
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
host
,client_id
ochclient_secret
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
host
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
host
, ,azure_tenant_id
azure_client_id
,azure_client_secret
och eventuelltazure_workspace_resource_id
. - För Azure CLI-autentisering:
host
. - För Azure-hanterad identitetsautentisering (där det stöds):
host
,azure_use_msi
,azure_client_id
och eventuelltazure_workspace_resource_id
.
DATABRICKS_CONFIG_PROFILE
Ange miljövariabeln till namnet på den här konfigurationsprofilen. Initiera sedan klassen enligtDatabricksSession
följande:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Information om hur du anger miljövariabler finns i dokumentationen till operativsystemet.
- För personlig åtkomsttokenautentisering i Azure Databricks:
En miljövariabel för varje konfigurationsegenskap
För det här alternativet anger du
DATABRICKS_CLUSTER_ID
miljövariabeln och andra miljövariabler som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.De miljövariabler som krävs för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
DATABRICKS_HOST
ochDATABRICKS_TOKEN
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
ochDATABRICKS_CLIENT_SECRET
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
DATABRICKS_HOST
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
DATABRICKS_HOST
, ,ARM_TENANT_ID
ARM_CLIENT_ID
,ARM_CLIENT_SECRET
och eventuelltDATABRICKS_AZURE_RESOURCE_ID
. - För Azure CLI-autentisering:
DATABRICKS_HOST
. - För Azure-hanterad identitetsautentisering (där det stöds):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
och eventuelltDATABRICKS_AZURE_RESOURCE_ID
.
Initiera sedan klassen enligt
DatabricksSession
följande:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Information om hur du anger miljövariabler finns i dokumentationen till operativsystemet.
- För personlig åtkomsttokenautentisering i Azure Databricks:
En Azure Databricks-konfigurationsprofil med namnet
DEFAULT
För det här alternativet skapar eller identifierar du en Azure Databricks-konfigurationsprofil som innehåller fältet
cluster_id
och andra fält som krävs för den Databricks-autentiseringstyp som stöds som du vill använda.Om du redan har angett
DATABRICKS_CLUSTER_ID
miljövariabeln med klustrets ID behöver du inte heller angecluster_id
.De obligatoriska konfigurationsprofilfälten för varje autentiseringstyp är följande:
- För personlig åtkomsttokenautentisering i Azure Databricks:
host
ochtoken
. - För OAuth-autentisering från dator till dator (M2M) (där det stöds):
host
,client_id
ochclient_secret
. - För OAuth-autentisering från användare till dator (U2M) (där det stöds):
host
. - För Microsoft Entra-ID (tidigare Azure Active Directory)-tjänstens huvudnamnsautentisering:
host
, ,azure_tenant_id
azure_client_id
,azure_client_secret
och eventuelltazure_workspace_resource_id
. - För Azure CLI-autentisering:
host
. - För Azure-hanterad identitetsautentisering (där det stöds):
host
,azure_use_msi
,azure_client_id
och eventuelltazure_workspace_resource_id
.
Ge den här konfigurationsprofilen
DEFAULT
namnet .Initiera sedan klassen enligt
DatabricksSession
följande:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- För personlig åtkomsttokenautentisering i Azure Databricks: