Condividi tramite


Esercitazione: Eseguire il codice da IntelliJ IDEA nel calcolo classico

Questa esercitazione illustra come iniziare a usare Databricks Connect per Scala usando IntelliJ IDEA e il plug-in Scala.

In questa esercitazione viene creato un progetto in IntelliJ IDEA, installare Databricks Connect per Databricks Runtime 13.3 LTS e versioni successive ed eseguire codice semplice nel calcolo nell'area di lavoro di Databricks da IntelliJ IDEA.

Suggerimento

Per informazioni su come usare i bundle di asset di Databricks per creare un progetto Scala che esegue codice in un ambiente di calcolo serverless, vedere Creare un file JAR Scala usando i bundle di asset di Databricks.

Requisiti

Per completare questa esercitazione, è necessario soddisfare i requisiti seguenti:

  • L'area di lavoro, l'ambiente locale e il calcolo soddisfano i requisiti per Databricks Connect per Scala. Vedere Requisiti di utilizzo di Databricks Connect.

  • È necessario avere a disposizione il proprio ID del cluster. Per ottenere l'ID cluster, nell'area di lavoro fare clic su Calcolo sulla barra laterale e quindi sul nome del cluster. Nella barra degli indirizzi del Web browser copiare la stringa di caratteri tra clusters e configuration nell'URL.

  • Nel computer di sviluppo è installato Java Development Kit (JDK). Per informazioni sulla versione da installare, vedere matrice di supporto della versione.

    Annotazioni

    Se non è installato un JDK o se sono presenti più installazioni JDK nel computer di sviluppo, è possibile installare o scegliere un JDK specifico più avanti nel passaggio 1. La scelta di un'installazione JDK sottostante o successiva alla versione JDK nel cluster potrebbe produrre risultati imprevisti oppure il codice potrebbe non essere eseguito affatto.

  • È installato IntelliJ IDEA. Questa esercitazione è stata testata con IntelliJ IDEA Community Edition 2023.3.6. Se si usa una versione o un'edizione diversa di IntelliJ IDEA, le istruzioni seguenti possono variare.

  • Hai installato il plug-in Scala per IntelliJ IDEA.

Passaggio 1: Configurare l'autenticazione di Azure Databricks

In questo tutorial viene utilizzata l'autenticazione OAuth da utente a macchina (U2M) di Azure Databricks e un profilo di configurazione di Azure Databricks per l'autenticazione con l'area di lavoro di Azure Databricks. Per usare invece un tipo di autenticazione diverso, vedere Configurare le proprietà di connessione.

La configurazione dell'autenticazione U2M OAuth richiede l'interfaccia della riga di comando di Databricks, come indicato di seguito:

  1. Installare l'interfaccia della riga di comando di Databricks:

    Linux, macOS

    Usare Homebrew per installare l'interfaccia della riga di comando di Databricks eseguendo i due comandi seguenti:

    brew tap databricks/tap
    brew install databricks
    

    Windows

    È possibile usare winget, Chocolatey o sottosistema Windows per Linux (WSL) per installare l'interfaccia della riga di comando di Databricks. Se non puoi usare winget, Chocolatey o WSL, dovresti ignorare questa procedura e usare il prompt dei comandi o PowerShell per installare il Databricks CLI dal codice sorgente.

    Annotazioni

    L'installazione dell'interfaccia a riga di comando di Databricks tramite Chocolatey è sperimentale.

    Per usare winget per installare l'interfaccia della riga di comando di Databricks, eseguire i due comandi seguenti e quindi riavviare il prompt dei comandi:

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    Per usare Chocolatey per installare l'interfaccia della riga di comando di Databricks, eseguire il comando seguente:

    choco install databricks-cli
    

    Per usare WSL per installare l'interfaccia della riga di comando di Databricks:

    1. Installare curl e zip tramite WSL. Per altre informazioni, vedere la documentazione del sistema operativo.

    2. Usare WSL per installare l'interfaccia della riga di comando di Databricks eseguendo il comando seguente:

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. Verificare che l'interfaccia della riga di comando di Databricks sia installata eseguendo il comando seguente, che visualizza la versione corrente dell'interfaccia della riga di comando di Databricks installata. Questa versione deve essere 0.205.0 o successiva:

    databricks -v
    

Avviare l'autenticazione U2M OAuth, come indicato di seguito:

  1. Usare il Databricks CLI per avviare la gestione dei token OAuth in locale eseguendo il seguente comando per ogni area di lavoro di destinazione.

    Nel seguente comando, sostituire <workspace-url> con l’URL per l'area di lavoro di Azure Databricks, per esempio https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. Il Databricks CLI richiede di salvare le informazioni immesse come profilo di configurazione di Azure Databricks. Premere Enter per accettare il nome del profilo suggerito oppure immettere il nome di un profilo nuovo o esistente. Qualsiasi profilo esistente con lo stesso nome viene sovrascritto con le informazioni immesse. È possibile usare i profili per cambiare rapidamente il contesto di autenticazione tra più aree di lavoro.

    Per ottenere un elenco di tutti i profili esistenti, in un terminale o un prompt dei comandi separato, usare il Databricks CLI per eseguire il comando databricks auth profiles. Per visualizzare le impostazioni esistenti di un profilo specifico, eseguire il comando databricks auth env --profile <profile-name>.

  3. Nel Web browser completare le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.

  4. Nell'elenco dei cluster disponibili visualizzati nel terminale o nel prompt dei comandi usare i tasti freccia su e freccia giù per selezionare il cluster Azure Databricks di destinazione nell'area di lavoro e quindi premere Enter. È anche possibile digitare qualsiasi parte del nome visualizzato del cluster per filtrare l'elenco dei cluster disponibili.

  5. Per visualizzare il valore corrente del token OAuth di un profilo e il timestamp di scadenza imminente del token, eseguire uno dei comandi seguenti:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Se si dispone di più profili con lo stesso valore --host, potrebbe essere necessario specificare insieme le opzioni --host e -p per consentire al Databricks CLI di trovare le informazioni corrette corrispondenti sul token OAuth.

Step 2: Creare il progetto

  1. Avvia IntelliJ IDEA.

  2. Scegliere File > Nuovo > progetto dal menu principale.

  3. Assegnare al progetto un nome significativo.

  4. Per la Posizione , fare clic sull'icona della cartella e completare le istruzioni sullo schermo per specificare il percorso del tuo nuovo progetto Scala.

  5. Nella sezione Lingua fare clic su Scala.

  6. In Sistema di compilazione, fare clic su sbt.

  7. Nell'elenco a discesa JDK, selezionare un'installazione esistente del JDK sul computer di sviluppo che corrisponde alla versione del JDK nel cluster, oppure selezionare Scarica JDK e seguire le istruzioni visualizzate per scaricare un JDK che corrisponde alla versione del JDK nel cluster. Vedere Requisiti.

    Annotazioni

    La scelta di un'installazione JDK precedente o successiva alla versione JDK nel cluster potrebbe produrre risultati imprevisti oppure il codice potrebbe non essere eseguito affatto.

  8. Nell'elenco a discesa sbt selezionare la versione più recente.

  9. Nell'elenco a discesa Scala, selezionare la versione di Scala corrispondente alla versione di Scala nel cluster. Vedere Requisiti.

    Annotazioni

    La scelta di una versione Scala sottostante o superiore alla versione scala nel cluster potrebbe produrre risultati imprevisti oppure il codice potrebbe non essere eseguito affatto.

  10. Assicurarsi che la casella Scarica origini accanto a Scala sia selezionata.

  11. Per Prefisso pacchetto immettere un valore di prefisso del pacchetto per le origini del progetto, ad esempio org.example.application.

  12. Assicurarsi che la casella Aggiungi codice di esempio sia selezionata.

  13. Clicca su Crea.

Creare il progetto IntelliJ IDEA

Passaggio 3: Aggiungere il pacchetto Databricks Connect

  1. Con il nuovo progetto Scala aperto, nella finestra degli strumenti Project (Visualizza > Strumenti > Project), apri il file denominato build.sbt in project-name> target.

  2. Aggiungere il codice seguente alla fine del build.sbt file, che dichiara la dipendenza del progetto da una versione specifica della libreria Databricks Connect per Scala, compatibile con la versione di Databricks Runtime del cluster:

    libraryDependencies += "com.databricks" %% "databricks-connect" % "17.0.+"
    

    Sostituire 17.0 con la versione della libreria Databricks Connect corrispondente alla versione di Databricks Runtime nel cluster. Ad esempio, Databricks Connect 16.4.+ corrisponde a Databricks Runtime 16.4 LTS. È possibile trovare i numeri di versione della libreria Databricks Connect nel repository centrale Maven .

    Annotazioni

    Quando si utilizza Databricks Connect, non includere artefatti di Apache Spark, ad esempio org.apache.spark:spark-core, nel progetto. Compilare invece direttamente in Databricks Connect.

  3. Fare clic sull'icona di notifica Carica modifiche sbt per aggiornare il progetto Scala con il nuovo percorso della libreria e le nuove dipendenze.

    Installare il pacchetto Databricks Connect

  4. Attendere che l'indicatore di stato sbt nella parte inferiore dell'IDE scompaia. Il completamento del sbt processo di caricamento potrebbe richiedere alcuni minuti.

Passaggio 4: Aggiungere codice

  1. Nella finestra dello strumento Project, aprire il file denominato Main.scala, in project-name> src > main > scala.

  2. Sostituire qualsiasi codice esistente nel file con il codice seguente e quindi salvare il file, a seconda del nome del profilo di configurazione.

    Se il profilo di configurazione del passaggio 1 è denominato DEFAULT, sostituire qualsiasi codice esistente nel file con il codice seguente e quindi salvare il file:

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val spark = DatabricksSession.builder().remote().getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

    Se il profilo di configurazione del passaggio 1 non è denominato DEFAULT, sostituire invece qualsiasi codice esistente nel file con il codice seguente. Sostituire il segnaposto <profile-name> con il nome del profilo di configurazione del passaggio 1 e quindi salvare il file:

    package org.example.application
    
    import com.databricks.connect.DatabricksSession
    import com.databricks.sdk.core.DatabricksConfig
    import org.apache.spark.sql.SparkSession
    
    object Main {
      def main(args: Array[String]): Unit = {
        val config = new DatabricksConfig().setProfile("<profile-name>")
        val spark = DatabricksSession.builder().sdkConfig(config).getOrCreate()
        val df = spark.read.table("samples.nyctaxi.trips")
        df.limit(5).show()
      }
    }
    

Passaggio 5: Configurare le opzioni della macchina virtuale

  1. Importa la directory corrente in IntelliJ dove si trova build.sbt.

  2. Scegliere Java 17 in IntelliJ. Passare a File>Struttura del progetto>SDK.

  3. Apri src/main/scala/com/examples/Main.scala.

  4. Passare alla configurazione per Main per aggiungere le opzioni della macchina virtuale:

    Modifica principale

    Aggiungere le opzioni della macchina virtuale

  5. Aggiungere quanto segue alle opzioni della macchina virtuale:

    --add-opens=java.base/java.nio=ALL-UNNAMED
    

Suggerimento

In alternativa, o se si usa Visual Studio Code, aggiungere quanto segue al file di compilazione sbt:

fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

Eseguire quindi l'applicazione dal terminale:

sbt run

Passaggio 6: Eseguire il codice

  1. Avviare il cluster di destinazione nell'area di lavoro remota di Azure Databricks.
  2. Dopo l'avvio del cluster, nel menu principale fare clic su Esegui > Esegui 'Main'.
  3. Nella finestra dello strumento Esegui (Visualizza > Strumenti > Esegui), nella scheda Principale, vengono visualizzate le prime 5 righe della tabella samples.nyctaxi.trips.

Passaggio 7: Eseguire il debug del codice

  1. Con il cluster di destinazione ancora in esecuzione, nel codice precedente cliccare sulla barra accanto a df.limit(5).show() per impostare un punto di interruzione.

  2. Nel menu principale fare clic su Esegui > Debug 'Main'. Nella finestra Strumento Debug (Visualizza > Finestre > degli strumenti Debug), nella scheda Console, fare clic sull'icona della calcolatrice (Valuta espressione).

  3. Immettere l'espressione df.schema.

  4. Fare clic su Valuta per visualizzare lo schema del dataframe.

  5. Nella barra laterale della finestra dello strumento di debug fare clic sulla freccia verde (Riprendi programma). Le prime 5 righe della samples.nyctaxi.trips tabella vengono visualizzate nel riquadro Console .

    Eseguire il debug del progetto IntelliJ IDEA