Freigeben über


Lernprogramm: Ausführen von Code aus IntelliJ IDEA auf der klassischen Berechnung

In diesem Lernprogramm wird veranschaulicht, wie Sie mit Databricks Connect für Scala mit IntelliJ IDEA und dem Scala-Plug-In beginnen.

In diesem Lernprogramm erstellen Sie ein Projekt in IntelliJ IDEA, installieren Databricks Connect für Databricks Runtime 13.3 LTS und höher, und führen Sie einfachen Code zur Berechnung in Ihrem Databricks-Arbeitsbereich aus IntelliJ IDEA aus.

Tipp

Informationen zum Verwenden von Databricks Asset Bundles zum Erstellen eines Scala-Projekts, das Code auf serverloser Berechnung ausführt, finden Sie unter Erstellen eines Scala JAR mithilfe von Databricks Asset Bundles.

Anforderungen

Um dieses Tutorial abzuschließen, müssen Sie die folgenden Anforderungen erfüllen:

  • Ihr Arbeitsbereich, Ihre lokale Umgebung und berechnen die Anforderungen für Databricks Connect für Scala. Siehe Databricks Connect-Nutzungsanforderungen.

  • Sie müssen ihre Cluster-ID verfügbar haben. Um Ihre Cluster-ID abzurufen, klicken Sie in Ihrem Arbeitsbereich auf der Randleiste auf "Berechnen ", und klicken Sie dann auf den Namen Ihres Clusters. Kopieren Sie in der Adressleiste Ihres Webbrowsers die Zeichenfolge zwischen clusters und configuration in der URL.

  • Das Java Development Kit (JDK) muss auf Ihrem Entwicklungscomputer installiert sein. Informationen zur zu installierenden Version finden Sie in der Versionsunterstützungsmatrix.

    Hinweis

    Wenn Sie kein JDK installiert haben oder mehrere JDK-Installationen auf Ihrem Entwicklungscomputer installiert sind, können Sie später in Schritt 1 ein JDK installieren oder ein bestimmtes auswählen. Wenn Sie eine JDK-Installation auswählen, deren Version älter oder neuer als die Version auf Ihrem Cluster ist, kann dies zu unerwarteten Ergebnissen führen. Möglicherweise wird Ihr Code auch überhaupt nicht ausgeführt.

  • Sie haben IntelliJ IDEA installiert. Dieses Tutorial wurde mit IntelliJ IDEA Community Edition 2023.3.6 getestet. Wenn Sie eine andere Version oder Edition von IntelliJ IDEA verwenden, können die folgenden Anweisungen variieren.

  • Sie haben das Scala-Plug-In für IntelliJ IDEA installiert.

Schritt 1: Konfigurieren der Azure Databricks-Authentifizierung

In diesem Tutorial werden die OAuth U2M-Authentifizierung (User-to-Machine) von Azure Databricks und ein Azure Databricks-Konfigurationsprofil für die Authentifizierung bei Ihrem Azure Databricks-Arbeitsbereich verwendet. Informationen zum Verwenden eines anderen Authentifizierungstyps finden Sie unter Konfigurieren von Verbindungseigenschaften.

Die Konfiguration der OAuth U2M-Authentifizierung erfordert die Verwendung der Databricks-Befehlszeilenschnittstelle (Command Line Interface, CLI). Gehen Sie dazu wie im Folgenden beschrieben vor:

  1. Installieren Sie die Databricks CLI:

    Linux, macOS

    Verwenden Sie Homebrew, um die Databricks CLI zu installieren, indem Sie die folgenden beiden Befehle ausführen:

    brew tap databricks/tap
    brew install databricks
    

    Fenster

    Sie können Winget, Chocolatey oder das Windows Subsystem für Linux (WSL) verwenden, um die Databricks CLI zu installieren. Wenn Sie winget, Chocolatey oder das WSL nicht verwenden können, sollten Sie dieses Verfahren überspringen und stattdessen die Eingabeaufforderung oder PowerShell verwenden, um die Databricks CLI aus der Quelle zu installieren.

    Hinweis

    Die Installation der Databricks CLI mit Chocolatey befindet sich in der experimentellen Phase.

    Um winget zum Installieren der Databricks CLI zu verwenden, führen Sie die folgenden beiden Befehle aus, und starten Sie dann die Eingabeaufforderung neu:

    winget search databricks
    winget install Databricks.DatabricksCLI
    

    Um Chocolatey zum Installieren der Databricks CLI zu verwenden, führen Sie den folgenden Befehl aus:

    choco install databricks-cli
    

    So installieren Sie die Databricks CLI mit dem WSL

    1. Installieren Sie curl und zip über das WSL. Weitere Informationen finden Sie in der Dokumentation Ihres Betriebssystems.

    2. Verwenden Sie WSL, um die Databricks CLI zu installieren, indem Sie den folgenden Befehl ausführen:

      curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
      
  2. Vergewissern Sie sich, dass die Databricks CLI installiert ist, indem Sie den folgenden Befehl ausführen, der die aktuelle Version der installierten Databricks CLI anzeigt. Diese Version sollte 0.205.0 oder höher sein:

    databricks -v
    

Initiieren Sie wie folgt die OAuth U2M-Authentifizierung:

  1. Verwenden Sie die Databricks CLI, um die OAuth-Tokenverwaltung lokal zu initiieren, indem Sie den folgenden Befehl für jeden Zielarbeitsbereich ausführen.

    Ersetzen Sie <workspace-url> im folgenden Befehl durch Ihre arbeitsbereichsspezifische Azure Databricks-URL, z. B. https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --configure-cluster --host <workspace-url>
    
  2. Die Databricks-CLI fordert Sie auf, die von Ihnen eingegebenen Informationen als Azure Databricks-Konfigurationsprofil zu speichern. Drücken Sie Enter, um den vorgeschlagenen Profilnamen zu übernehmen, oder geben Sie den Namen eines neuen oder bereits vorhandenen Profils ein. Ist bereits ein Profil mit dem gleichen Namen vorhanden, wird es mit den von Ihnen eingegebenen Informationen überschrieben. Sie können Profile verwenden, um Ihren Authentifizierungskontext schnell über mehrere Arbeitsbereiche hinweg zu wechseln.

    Verwenden Sie zum Abrufen einer Liste vorhandener Profile in einem separaten Terminal oder einer separaten Eingabeaufforderung die Databricks CLI, um den Befehl databricks auth profilesauszuführen. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, führen Sie den Befehl databricks auth env --profile <profile-name>aus.

  3. Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.

  4. Verwenden Sie in der Liste der verfügbaren Cluster, die im Terminal oder in der Eingabeaufforderung angezeigt wird, die NACH-OBEN- und NACH-UNTEN-TASTEN, um den Azure Databricks-Zielcluster in Ihrem Arbeitsbereich auszuwählen, und drücken Sie dann die EINGABETASTE (Enter). Sie können auch einen beliebigen Teil des Anzeigenamens des Clusters eingeben, um die Liste der verfügbaren Cluster zu filtern.

  5. Um den aktuellen OAuth-Tokenwert eines Profils und den bevorstehenden Ablaufzeitstempel eines Profils anzuzeigen, führen Sie einen der folgenden Befehle aus:

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

    Wenn Sie über mehrere Profile mit demselben --host-Wert verfügen, müssen Sie möglicherweise die Optionen --host und -p zusammen angeben, damit die Databricks CLI die richtigen übereinstimmenden Informationen des OAuth-Tokens ermitteln kann.

Schritt 2: Erstellen des Projekts

  1. Starten Sie IntelliJ IDEA.

  2. Klicken Sie im Hauptmenü auf Datei > Neu > Projekt.

  3. Geben Sie Ihrem Projekt einen aussagekräftigen Namen.

  4. Klicken Sie unter Speicherort auf das Ordnersymbol, und folgen Sie den Anweisungen auf dem Bildschirm, um den Pfad zu Ihrem neuen Scala-Projekt anzugeben.

  5. Klicken Sie für Sprache auf Scala.

  6. Klicken Sie für das Buildsystem auf sbt.

  7. Wählen Sie in der JDK-Dropdownliste eine vorhandene Installation von JDK auf Ihrem Entwicklungscomputer aus, die der JDK-Version auf Ihrem Cluster entspricht, oder wählen Sie JDK herunterladen und befolgen Sie die Anweisungen auf dem Bildschirm, um ein JDK herunterzuladen, das der JDK-Version auf Ihrem Cluster entspricht. Siehe Anforderungen.

    Hinweis

    Wenn Sie eine JDK-Installation auswählen, die älter oder neuer als die JDK-Version auf Ihrem Cluster ist, kann es zu unerwarteten Ergebnissen führen, oder Ihr Code wird möglicherweise überhaupt nicht ausgeführt.

  8. Wählen Sie in der sbt-Dropdownliste die neueste Version aus.

  9. Wählen Sie in der Scala-Dropdownliste die Version von Scala aus, die der Scala-Version auf Ihrem Cluster entspricht. Siehe Anforderungen.

    Hinweis

    Wenn Sie eine Scala-Version auswählen, die älter oder neuer als die Scala-Version auf Ihrem Cluster ist, kann dies zu unerwarteten Ergebnissen führen. Möglicherweise wird Ihr Code auch überhaupt nicht ausgeführt.

  10. Stellen Sie sicher, dass das Kontrollkästchen Quellen herunterladen neben Scala aktiviert ist.

  11. Geben Sie einen Wert für das Paketpräfix für die Quellen Ihres Projekts ein, z. B. org.example.application.

  12. Stellen Sie sicher, dass das Feld Beispielcode hinzufügen aktiviert ist.

  13. Klicken Sie auf "Erstellen".

Erstellen des IntelliJ IDEA-Projekts

Schritt 3: Hinzufügen des Databricks Connect-Pakets

  1. Wenn Sie Ihr neues Scala-Projekt geöffnet haben, öffnen Sie in Ihrem Projekt-Tool-Window (Ansicht > Tool-Window > Projekt) die Datei mit dem Namen build.sbt, in Projekt-Name> Ziel.

  2. Fügen Sie am Ende der build.sbt Datei den folgenden Code hinzu, der die Abhängigkeit Ihres Projekts von einer bestimmten Version der Databricks Connect-Bibliothek für Scala deklariert, die mit der Databricks-Runtime-Version Ihres Clusters kompatibel ist:

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

    Ersetzen Sie 17.0 durch die Version der Databricks Connect-Bibliothek, die der Databricks-Runtime-Version auf Ihrem Cluster entspricht. Beispielsweise entspricht Databricks Connect 16.4.+ Databricks Runtime 16.4 LTS. Die Versionsnummern der Databricks Connect-Bibliothek finden Sie im Maven Central Repository.

    Hinweis

    Erstellen Sie mit Databricks Connect im Projekt keine Apache Spark-Artefakte wie org.apache.spark:spark-core. Kompilieren Sie stattdessen direkt mit Databricks Connect.

  3. Klicken Sie auf das Benachrichtigungssymbol sbt-Änderungen laden, um Ihr Scala-Projekt mit dem neuen Bibliotheksspeicherort und der Abhängigkeit zu aktualisieren.

    Installieren Sie das Databricks Connect-Paket

  4. Warten Sie, bis die Statusanzeige sbt am unteren Rand der IDE ausgeblendet wird. Der Ladevorgang sbt kann einige Minuten dauern.

Schritt 4: Hinzufügen von Code

  1. Öffnen Sie in Ihrem Projekt Tool-Window die Datei mit dem Namen Main.scala, in Projektname> src > Main > Scala.

  2. Ersetzen Sie vorhandenen Code in der Datei durch den folgenden Code und speichern Sie die Datei dann abhängig vom Namen Ihres Konfigurationsprofils.

    Wenn Ihr Konfigurationsprofil aus Schritt 1 DEFAULT lautet, ersetzen Sie den vorhandenen Code in der Datei durch den folgenden Code und speichern Sie die Datei:

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

    Wenn Ihr Konfigurationsprofil aus Schritt 1 nicht DEFAULT lautet, ersetzen Sie stattdessen den vorhandenen Code in der Datei durch den folgenden Code. Ersetzen Sie den Platzhalter <profile-name> durch den Namen Ihres Konfigurationsprofils aus Schritt 1 und speichern Sie dann die Datei:

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

Schritt 5: Konfigurieren der VM-Optionen

  1. Importieren Sie das aktuelle Verzeichnis in Ihrem IntelliJ, wo build.sbt sich befindet.

  2. Wählen Sie Java 17 in IntelliJ aus. Wechseln Sie zu Datei>Projektstruktur>SDKs.

  3. Öffnen Sie src/main/scala/com/examples/Main.scala.

  4. Navigieren Sie zur Konfiguration für Main, um VM-Optionen hinzuzufügen:

    Hauptseite bearbeiten

    Hinzufügen von VM-Optionen

  5. Fügen Sie Die folgenden Optionen zu Ihren VM-Optionen hinzu:

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

Tipp

Oder wenn Sie Visual Studio Code verwenden, fügen Sie Ihrer Sbt-Builddatei Folgendes hinzu:

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

Führen Sie dann Ihre Anwendung über das Terminal aus:

sbt run

Schritt 6: Ausführen des Codes

  1. Starten Sie den Zielcluster in Ihrem Azure Databricks-Remotearbeitsbereich.
  2. Nachdem der Cluster gestartet wurde, klicken Sie im Hauptmenü auf Ausführen > 'Main'.
  3. Im Ausführen-Toolfenster (Anzeigen > Windows-Tool > Ausführen) werden auf der Registerkarte Main die ersten 5 Zeilen der samples.nyctaxi.trips-Tabelle angezeigt.

Schritt 7: Debuggen des Codes

  1. Wählen Sie, während das Zielcluster noch ausgeführt wird, im vorherigen Code den Bundsteg neben df.limit(5).show() aus, um einen Breakpoint festzulegen.

  2. Klicken Sie im Hauptmenü auf "Debug 'Main' ausführen>". Klicken Sie im Debuggen-Toolfenster (Anzeigen> Windows-Tool> Debuggen) auf der Registerkarte Konsole auf das Rechnersymbol (Ausdruck auswerten).

  3. Geben Sie den Ausdruck df.schemaein.

  4. Klicken Sie auf "Auswerten ", um das Schema von DataFrame anzuzeigen.

  5. Klicken Sie in der Randleiste des Debugtools auf den grünen Pfeil (Programm fortsetzen). Die ersten fünf Zeilen der samples.nyctaxi.trips Tabelle werden im Konsolenbereich angezeigt.

    Debuggen des IntelliJ IDEA-Projekts