Dela via


Självstudie: Kör kod från IntelliJ IDEA på klassisk beräkning

Den här självstudien visar hur du kommer igång med Databricks Connect för Scala med IntelliJ IDEA och Scala-plugin-programmet.

I den här självstudien skapar du ett projekt i IntelliJ IDEA, installerar Databricks Connect för Databricks Runtime 13.3 LTS och senare och kör enkel kod för beräkning på Databricks-arbetsytan från IntelliJ IDEA.

Tips/Råd

Information om hur du använder Databricks-tillgångspaket för att skapa ett Scala-projekt som kör kod på serverlös beräkning finns i Skapa en Scala JAR med Databricks Asset Bundles.

Kravspecifikation

För att slutföra den här självstudien måste du uppfylla följande krav:

  • Din arbetsyta, lokala miljö och beräkning uppfyller kraven för Databricks Connect för Scala. Se Användningskrav för Databricks Connect.

  • Du måste ha ditt kluster-ID tillgängligt. Om du vill hämta ditt kluster-ID klickar du på Beräkning i sidofältet i arbetsytan och klickar sedan på klustrets namn. Kopiera teckensträngen mellan clusters och configuration i URL:en i webbläsarens adressfält.

  • Du har Java Development Kit (JDK) installerat på utvecklingsdatorn. Information om vilken version som ska installeras finns i versionsstödmatrisen.

    Anmärkning

    Om du inte har ett JDK installerat, eller om du har flera JDK-installationer på utvecklingsdatorn, kan du installera eller välja ett specifikt JDK senare i steg 1. Om du väljer en JDK-installation som är lägre än eller högre än JDK-versionen i klustret kan det ge oväntade resultat, eller så kanske koden inte körs alls.

  • Du har IntelliJ IDEA installerat. Den här handledningen har testats med IntelliJ IDEA Community Edition 2023.3.6. Om du använder en annan version eller utgåva av IntelliJ IDEA kan följande instruktioner variera.

  • Du har Scala-plugin-programmet för IntelliJ IDEA installerat.

Steg 1: Konfigurera Azure Databricks-autentisering

I den här självstudien används OAuth-användartill-dator-autentisering (U2M) med Azure Databricks och en konfigurationsprofil för Azure Databricks för att autentisera med din Azure Databricks-arbetsyta. Information om hur du använder en annan autentiseringstyp finns i Konfigurera anslutningsegenskaper.

För att konfigurera OAuth U2M-autentisering krävs Databricks CLI enligt följande:

  1. Installera Databricks CLI:

    Linux, macOS

    Använd Homebrew för att installera Databricks CLI genom att köra följande två kommandon:

    brew tap databricks/tap
    brew install databricks
    

    Windows

    Du kan använda winget, Chocolatey eller Windows-undersystem för Linux (WSL) för att installera Databricks CLI. Om du inte kan använda winget, Chocolatey eller WSL bör du hoppa över den här proceduren och använda Kommandotolken eller PowerShell för att installera Databricks CLI från källan i stället.

    Anmärkning

    Det är experimentellt att installera Databricks CLI med Chocolatey.

    Om du vill använda winget för att installera Databricks CLI kör du följande två kommandon och startar sedan om kommandotolken:

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    Kör följande kommando för att använda Chocolatey för att installera Databricks CLI:

    choco install databricks-cli
    

    Så här använder du WSL för att installera Databricks CLI:

    1. Installera curl och zip via WSL. Mer information finns i dokumentationen för ditt operativsystem.

    2. Använd WSL för att installera Databricks CLI genom att köra följande kommando:

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. Bekräfta att Databricks CLI har installerats genom att köra följande kommando, som visar den aktuella versionen av det installerade Databricks CLI. Den här versionen ska vara 0.205.0 eller senare:

    databricks -v
    

Initiera OAuth U2M-autentisering på följande sätt:

  1. Använd Databricks CLI för att initiera OAuth-tokenhantering lokalt genom att köra följande kommando för varje målarbetsyta.

    I följande kommando ersätter du <workspace-url> med url:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. Databricks CLI uppmanar dig att spara den information som du angav som en Azure Databricks-konfigurationsprofil. Tryck Enter för att acceptera det föreslagna profilnamnet eller ange namnet på en ny eller befintlig profil. Alla befintliga profiler med samma namn skrivs över med den information som du angav. Du kan använda profiler för att snabbt växla autentiseringskontext över flera arbetsytor.

    Om du vill hämta en lista över befintliga profiler i en separat terminal eller kommandotolk använder du Databricks CLI för att köra kommandot databricks auth profiles. Om du vill visa en specifik profils befintliga inställningar kör du kommandot databricks auth env --profile <profile-name>.

  3. I webbläsaren slutför du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.

  4. I listan över tillgängliga kluster som visas i terminalen eller kommandotolken använder du upppilen och nedåtpilen för att välja Azure Databricks-målklustret på arbetsytan och trycker sedan på Enter. Du kan också ange valfri del av klustrets visningsnamn för att filtrera listan över tillgängliga kluster.

  5. Om du vill visa en profils aktuella OAuth-tokenvärde och tokens kommande förfallotidsstämpel kör du något av följande kommandon:

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

    Om du har flera profiler med samma --host värde kan du behöva ange --host alternativen och -p tillsammans för att hjälpa Databricks CLI att hitta rätt matchande OAuth-tokeninformation.

Steg 2: Skapa projektet

  1. Starta upp IntelliJ IDEA.

  2. På huvudmenyn klickar du på Arkiv > Nytt > projekt.

  3. Ge projektet ett beskrivande namn.

  4. För Plats klickar du på mappikonen och slutför anvisningarna på skärmen för att ange sökvägen till ditt nya Scala-projekt.

  5. För Språk klickar du på Scala.

  6. För Skapa system klickar du på sbt.

  7. I listrutan JDK väljer du en befintlig installation av JDK:t på utvecklingsdatorn som matchar JDK-versionen i klustret eller väljer Ladda ned JDK och följer anvisningarna på skärmen för att ladda ned en JDK som matchar JDK-versionen i klustret. Se kraven.

    Anmärkning

    Om du väljer en JDK-installation som ligger ovanför eller under JDK-versionen i klustret kan det ge oväntade resultat, eller så kanske koden inte körs alls.

  8. I listrutan sbt väljer du den senaste versionen.

  9. I listrutan Scala väljer du den version av Scala som matchar Scala-versionen i klustret. Se kraven.

    Anmärkning

    Om du väljer en Scala-version som är lägre än eller högre än Scala-versionen i klustret kan det ge oväntade resultat, eller så kanske koden inte körs alls.

  10. Kontrollera att rutan Ladda ned källor bredvid Scala är markerad.

  11. För Paketprefix anger du ett paketprefixvärde för projektets källor, till exempel org.example.application.

  12. Kontrollera att rutan Lägg till exempelkod är markerad.

  13. Klicka på Skapa.

Skapa IntelliJ IDEA-projektet

Steg 3: Lägg till Databricks Connect-paketet

  1. När du har ditt nya Scala-projekt öppet, öppna verktygsfönstret Project (View > Tool Windows > Project), och öppna filen som heter build.sbti projektnamn> target.

  2. Lägg till följande kod i slutet av build.sbt filen, som deklarerar projektets beroende av en specifik version av Databricks Connect-biblioteket för Scala, kompatibel med Databricks Runtime-versionen av klustret:

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

    Ersätt 17.0 med den version av Databricks Connect-biblioteket som matchar Databricks Runtime-versionen i klustret. Databricks Connect 16.4.+ matchar till exempel Databricks Runtime 16.4 LTS. Du hittar versionsnumren för Databricks Connect-biblioteket på den centrala Maven-lagringsplatsen.

    Anmärkning

    När du skapar med Databricks Connect ska du inte inkludera Apache Spark-artefakter som org.apache.spark:spark-core i projektet. Kompilera i stället direkt mot Databricks Connect.

  3. Klicka på meddelandeikonen Läs in sbt-ändringar så att Scala-projektet uppdateras med den nya platsen för biblioteket och beroendet.

    Installera Databricks Connect-paketet

  4. Vänta tills förloppsindikatorn sbt längst ned i IDE försvinner. Inläsningsprocessen sbt kan ta några minuter att slutföra.

Steg 4: Lägg till kod

  1. I verktygsfönstret för projektet öppnar du filen med namnet Main.scalai projektnamn> src > main > scala.

  2. Ersätt befintlig kod i filen med följande kod och spara sedan filen, beroende på namnet på din konfigurationsprofil.

    Om konfigurationsprofilen från steg 1 heter DEFAULTersätter du eventuell befintlig kod i filen med följande kod och sparar sedan filen:

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

    Om konfigurationsprofilen från steg 1 inte heter DEFAULTersätter du eventuell befintlig kod i filen med följande kod i stället. Ersätt platshållaren <profile-name> med namnet på konfigurationsprofilen från steg 1 och spara sedan filen:

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

Steg 5: Konfigurera alternativen för virtuella datorer

  1. Importera den aktuella katalogen i din IntelliJ där build.sbt finns.

  2. Välj Java 17 i IntelliJ. Gå till Fil>Projektstruktur>SDK:er.

  3. Öppna src/main/scala/com/examples/Main.scala.

  4. Gå till konfigurationen för Main för att lägga till vm-alternativ:

    Redigera huvudsektion

    Lägg till alternativ för virtuell dator

  5. Lägg till följande i alternativen för den virtuella datorn:

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

Tips/Råd

Alternativt, eller om du använder Visual Studio Code, lägger du till följande i din sbt build-fil:

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

Kör sedan programmet från terminalen:

sbt run

Steg 6: Kör koden

  1. Starta målklustret på din fjärranslutna Azure Databricks-arbetsyta.
  2. Efter att klustret har startat, klickar du på huvudmenyn och väljer Kör 'Main'>.
  3. I verktygsfönstret Kör (View > Tool Windows > Run) på fliken Main visas de första 5 raderna i tabellen samples.nyctaxi.trips.

Steg 7: Felsöka koden

  1. Med målklustret fortfarande igång klickar du i den föregående koden på marginalen bredvid df.limit(5).show() för att ange en brytpunkt.

  2. På huvudmenyn klickar du på Kör > felsökning "Main". I verktygsfönstret Felsökning (View > Tool Windows > Debug) på fliken Console klickar du på kalkylatorn (Utvärdera uttryck).

  3. Ange uttrycket df.schema.

  4. Klicka på Utvärdera för att visa dataramens schema.

  5. I sidofältet för felsökningsverktyget klickar du på den gröna pilen (Återuppta program). De första 5 raderna i samples.nyctaxi.trips tabellen visas i konsolfönstret .

    Felsöka IntelliJ IDEA-projektet