Installare Databricks Connect per Scala
Nota
Questo articolo illustra Databricks Connect per Databricks Runtime 13.3 LTS e versioni successive.
Questo articolo descrive come installare Databricks Connect per Scala. Vedere Che cos'è Databricks Connect?. Per la versione Python di questo articolo, vedere Installare Databricks Connect per Python.
Requisiti
- L'area di lavoro e il cluster di Azure Databricks di destinazione devono soddisfare i requisiti per la configurazione del cluster per Databricks Connect.
- Java Development Kit (JDK) installato nel computer di sviluppo. Databricks consiglia di usare la versione dell'installazione di JDK corrispondente alla versione JDK nel cluster Azure Databricks. Per trovare la versione di JDK nel cluster, vedere la sezione "Ambiente di sistema" delle note sulla versione di Databricks Runtime per il cluster. Ad esempio,
Zulu 8.70.0.23-CA-linux64
corrisponde a JDK 8. Vedere Versioni e compatibilità delle note sulla versione di Databricks Runtime. - Scala installato nel computer di sviluppo. Databricks consiglia di usare la versione dell'installazione di Scala corrispondente alla versione scala nel cluster Azure Databricks. Per trovare la versione scala nel cluster, vedere la sezione "Ambiente di sistema" delle note sulla versione di Databricks Runtime per il cluster. Vedere Versioni e compatibilità delle note sulla versione di Databricks Runtime.
- Uno strumento di compilazione Scala nel computer di sviluppo, ad esempio
sbt
.
Configurare il client
Dopo aver soddisfatto i requisiti per Databricks Connect, completare la procedura seguente per configurare il client Databricks Connect.
Passaggio 1: Aggiungere un riferimento al client Databricks Connect
Nel file di compilazione del progetto Scala,
build.sbt
ad esempio persbt
,pom.xml
per Maven obuild.gradle
per Gradle, aggiungere il riferimento seguente al client Databricks Connect: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'
Sostituire
14.0.0
con la versione della libreria Databricks Connect corrispondente alla versione di Databricks Runtime nel cluster. È possibile trovare i numeri di versione della libreria Databricks Connect nel repository centrale Maven.
Passaggio 2: Configurare le proprietà di connessione
In questa sezione vengono configurate le proprietà per stabilire una connessione tra Databricks Connect e il cluster Azure Databricks remoto. Queste proprietà includono le impostazioni per autenticare Databricks Connect con il cluster.
Per Databricks Connect per Databricks Runtime 13.3 LTS e versioni successive, per Scala, Databricks Connect include Databricks SDK per Java. Questo SDK implementa lo standard di autenticazione unificata del client Databricks, un approccio architetturale e programmatico consolidato e coerente all'autenticazione. Questo approccio consente di configurare e automatizzare l'autenticazione con Azure Databricks più centralizzato e prevedibile. Consente di configurare l'autenticazione di Azure Databricks una sola volta e quindi di usarla in più strumenti e SDK di Azure Databricks senza ulteriori modifiche alla configurazione dell'autenticazione.
Nota
L'autenticazione da utente a computer (U2M) OAuth è supportata in Databricks SDK per Java 0.18.0 e versioni successive. Potrebbe essere necessario aggiornare la versione installata del progetto di codice di Databricks SDK per Java alla versione 0.18.0 o successiva per usare l'autenticazione U2M OAuth. Vedere Introduzione a Databricks SDK per Java.
Per l'autenticazione U2M OAuth, è necessario usare l'interfaccia della riga di comando di Databricks per eseguire l'autenticazione prima di eseguire il codice Scala. Vedere l'esercitazione.
L'autenticazione da computer a computer (M2M) OAuth è supportata in Databricks SDK per Java 0.17.0 e versioni successive. Potrebbe essere necessario aggiornare la versione installata del progetto di codice di Databricks SDK per Java alla versione 0.17.0 o successiva per usare l'autenticazione U2M OAuth. Vedere Introduzione a Databricks SDK per Java.
Databricks SDK per Java non ha ancora implementato l'autenticazione delle identità gestite di Azure.
Raccogliere le proprietà di configurazione seguenti.
- Nome dell'istanza dell'area di lavoro di Azure Databricks. Si tratta dello stesso valore del nome host del server per il cluster. Vedere Ottenere i dettagli della connessione per una risorsa di calcolo di Azure Databricks.
- ID del cluster. È possibile ottenere l'ID cluster dall'URL. Vedere URL e ID del cluster.
- Tutte le altre proprietà necessarie per il tipo di autenticazione di Databricks supportato. Queste proprietà sono descritte in questa sezione.
Configurare la connessione all'interno del codice. Databricks Connect cerca le proprietà di configurazione nell'ordine seguente finché non le trova. Dopo averli trovati, smette di eseguire la ricerca nelle opzioni rimanenti. I dettagli per ogni opzione vengono visualizzati dopo la tabella seguente:
Opzione proprietà di configurazione Si applica a 1. Metodo DatabricksSession
dellaremote()
classeSolo autenticazione del token di accesso personale di Azure Databricks 2. Un profilo di configurazione di Azure Databricks Tutti i tipi di autenticazione di Azure Databricks 3. Variabile di SPARK_REMOTE
ambienteSolo autenticazione del token di accesso personale di Azure Databricks 4. Variabile di DATABRICKS_CONFIG_PROFILE
ambienteTutti i tipi di autenticazione di Azure Databricks 5. Variabile di ambiente per ogni proprietà di configurazione Tutti i tipi di autenticazione di Azure Databricks 6. Profilo di configurazione di Azure Databricks denominato DEFAULT
Tutti i tipi di autenticazione di Azure Databricks Metodo
DatabricksSession
dellaremote()
classePer questa opzione, che si applica solo all'autenticazione del token di accesso personale di Azure Databricks, specificare il nome dell'istanza dell'area di lavoro, il token di accesso personale di Azure Databricks e l'ID del cluster.
È possibile inizializzare la
DatabricksSession
classe in diversi modi, come indicato di seguito:- Impostare i
host
campi ,token
eclusterId
inDatabricksSession.builder
. - Usare la classe di
Config
Databricks SDK. - Specificare un profilo di configurazione di Databricks insieme al
clusterId
campo .
Databricks non consiglia di specificare direttamente queste proprietà di connessione nel codice. Databricks consiglia invece di configurare le proprietà tramite variabili di ambiente o file di configurazione, come descritto in questa sezione. Gli esempi di codice seguenti presuppongono che vengano fornite alcune implementazioni delle funzioni proposte
retrieve*
per ottenere le proprietà necessarie dall'utente o da un altro archivio di configurazione, ad esempio Azure KeyVault.Il codice per ognuno di questi approcci è il seguente:
// 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()
- Impostare i
Un profilo di configurazione di Azure Databricks
Per questa opzione, creare o identificare un profilo di configurazione di Azure Databricks contenente il campo
cluster_id
e tutti gli altri campi necessari per il tipo di autenticazione databricks supportato che si vuole usare.I campi del profilo di configurazione necessari per ogni tipo di autenticazione sono i seguenti:
- Per l'autenticazione del token di accesso personale di Azure Databricks:
host
etoken
. - Per l'autenticazione da computer a computer OAuth (M2M) (dove supportato):
host
,client_id
eclient_secret
. - Per l'autenticazione da utente a computer (U2M) OAuth (dove supportato):
host
. - Per l'autenticazione dell'entità
host
servizio Microsoft Entra ID (in precedenza Azure Active Directory): ,azure_tenant_id
,azure_client_id
,azure_client_secret
e possibilmenteazure_workspace_resource_id
. - Per l'autenticazione dell'interfaccia della riga di comando di Azure:
host
. - Per l'autenticazione delle identità gestite di Azure (dove supportato):
host
,azure_use_msi
,azure_client_id
e possibilmenteazure_workspace_resource_id
.
Impostare quindi il nome di questo profilo di configurazione tramite la
DatabricksConfig
classe .È possibile specificare
cluster_id
in alcuni modi, come indicato di seguito:- Includere il
cluster_id
campo nel profilo di configurazione e quindi specificare solo il nome del profilo di configurazione. - Specificare il nome del profilo di configurazione insieme al
clusterId
campo .
Se la variabile di ambiente è già stata impostata
DATABRICKS_CLUSTER_ID
con l'ID del cluster, non è necessario specificare anche icluster_id
campi oclusterId
.Il codice per ognuno di questi approcci è il seguente:
// 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()
- Per l'autenticazione del token di accesso personale di Azure Databricks:
Variabile di
SPARK_REMOTE
ambientePer questa opzione, che si applica solo all'autenticazione del token di accesso personale di Azure Databricks, impostare la
SPARK_REMOTE
variabile di ambiente sulla stringa seguente, sostituendo i segnaposto con i valori appropriati.sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
Inizializzare quindi la
DatabricksSession
classe come segue:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Per impostare le variabili di ambiente, vedere la documentazione del sistema operativo.
Variabile di
DATABRICKS_CONFIG_PROFILE
ambientePer questa opzione, creare o identificare un profilo di configurazione di Azure Databricks contenente il campo
cluster_id
e tutti gli altri campi necessari per il tipo di autenticazione databricks supportato che si vuole usare.Se la variabile di ambiente è già stata impostata
DATABRICKS_CLUSTER_ID
con l'ID del cluster, non è necessario specificarecluster_id
anche .I campi del profilo di configurazione necessari per ogni tipo di autenticazione sono i seguenti:
- Per l'autenticazione del token di accesso personale di Azure Databricks:
host
etoken
. - Per l'autenticazione da computer a computer OAuth (M2M) (dove supportato):
host
,client_id
eclient_secret
. - Per l'autenticazione da utente a computer (U2M) OAuth (dove supportato):
host
. - Per l'autenticazione dell'entità
host
servizio Microsoft Entra ID (in precedenza Azure Active Directory): ,azure_tenant_id
,azure_client_id
,azure_client_secret
e possibilmenteazure_workspace_resource_id
. - Per l'autenticazione dell'interfaccia della riga di comando di Azure:
host
. - Per l'autenticazione delle identità gestite di Azure (dove supportato):
host
,azure_use_msi
,azure_client_id
e possibilmenteazure_workspace_resource_id
.
Impostare la
DATABRICKS_CONFIG_PROFILE
variabile di ambiente sul nome di questo profilo di configurazione. Inizializzare quindi laDatabricksSession
classe come segue:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Per impostare le variabili di ambiente, vedere la documentazione del sistema operativo.
- Per l'autenticazione del token di accesso personale di Azure Databricks:
Variabile di ambiente per ogni proprietà di configurazione
Per questa opzione, impostare la
DATABRICKS_CLUSTER_ID
variabile di ambiente e tutte le altre variabili di ambiente necessarie per il tipo di autenticazione databricks supportato che si vuole usare.Le variabili di ambiente necessarie per ogni tipo di autenticazione sono le seguenti:
- Per l'autenticazione del token di accesso personale di Azure Databricks:
DATABRICKS_HOST
eDATABRICKS_TOKEN
. - Per l'autenticazione da computer a computer OAuth (M2M) (dove supportato):
DATABRICKS_HOST
,DATABRICKS_CLIENT_ID
eDATABRICKS_CLIENT_SECRET
. - Per l'autenticazione da utente a computer (U2M) OAuth (dove supportato):
DATABRICKS_HOST
. - Per l'autenticazione dell'entità
DATABRICKS_HOST
servizio Microsoft Entra ID (in precedenza Azure Active Directory): ,ARM_TENANT_ID
,ARM_CLIENT_ID
,ARM_CLIENT_SECRET
e possibilmenteDATABRICKS_AZURE_RESOURCE_ID
. - Per l'autenticazione dell'interfaccia della riga di comando di Azure:
DATABRICKS_HOST
. - Per l'autenticazione delle identità gestite di Azure (dove supportato):
DATABRICKS_HOST
,ARM_USE_MSI
,ARM_CLIENT_ID
e possibilmenteDATABRICKS_AZURE_RESOURCE_ID
.
Inizializzare quindi la
DatabricksSession
classe come segue:import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
Per impostare le variabili di ambiente, vedere la documentazione del sistema operativo.
- Per l'autenticazione del token di accesso personale di Azure Databricks:
Profilo di configurazione di Azure Databricks denominato
DEFAULT
Per questa opzione, creare o identificare un profilo di configurazione di Azure Databricks contenente il campo
cluster_id
e tutti gli altri campi necessari per il tipo di autenticazione databricks supportato che si vuole usare.Se la variabile di ambiente è già stata impostata
DATABRICKS_CLUSTER_ID
con l'ID del cluster, non è necessario specificarecluster_id
anche .I campi del profilo di configurazione necessari per ogni tipo di autenticazione sono i seguenti:
- Per l'autenticazione del token di accesso personale di Azure Databricks:
host
etoken
. - Per l'autenticazione da computer a computer OAuth (M2M) (dove supportato):
host
,client_id
eclient_secret
. - Per l'autenticazione da utente a computer (U2M) OAuth (dove supportato):
host
. - Per l'autenticazione dell'entità
host
servizio Microsoft Entra ID (in precedenza Azure Active Directory): ,azure_tenant_id
,azure_client_id
,azure_client_secret
e possibilmenteazure_workspace_resource_id
. - Per l'autenticazione dell'interfaccia della riga di comando di Azure:
host
. - Per l'autenticazione delle identità gestite di Azure (dove supportato):
host
,azure_use_msi
,azure_client_id
e possibilmenteazure_workspace_resource_id
.
Assegnare al profilo di configurazione il nome
DEFAULT
.Inizializzare quindi la
DatabricksSession
classe come segue:scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
- Per l'autenticazione del token di accesso personale di Azure Databricks: