Condividi tramite


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

  1. Nel file di compilazione del progetto Scala, build.sbt ad esempio per sbt, pom.xml per Maven o build.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'
    
  2. 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.

  1. Raccogliere le proprietà di configurazione seguenti.

  2. 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 della remote() classe Solo 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 ambiente Solo autenticazione del token di accesso personale di Azure Databricks
    4. Variabile di DATABRICKS_CONFIG_PROFILE ambiente Tutti 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
    1. Metodo DatabricksSession della remote() classe

      Per 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 hostcampi , tokene clusterId in DatabricksSession.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()
      
    2. 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:

      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 i cluster_id campi o clusterId .

      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()
      
    3. Variabile di SPARK_REMOTE ambiente

      Per 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.

    4. Variabile di DATABRICKS_CONFIG_PROFILE ambiente

      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 specificare cluster_idanche .

      I campi del profilo di configurazione necessari per ogni tipo di autenticazione sono i seguenti:

      Impostare la DATABRICKS_CONFIG_PROFILE variabile di ambiente sul nome di questo profilo di configurazione. 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.

    5. 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:

      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.

    6. 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 specificare cluster_idanche .

      I campi del profilo di configurazione necessari per ogni tipo di autenticazione sono i seguenti:

      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()