Freigeben über


Verwenden von IntelliJ IDEA mit Databricks Connect für Scala

Hinweis

Dieser Artikel behandelt Databricks Connect für Databricks Runtime Version 13.3 LTS und höher.

In diesem Artikel wird beschrieben, wie Databricks Connect für Scala und IntelliJ IDEA mit dem Scala-Plug-In verwendet wird. Mit Databricks Connect können Sie beliebte IDEs, Notebookserver und andere benutzerdefinierte Anwendungen mit Azure Databricks-Clustern verbinden. Weitere Informationen finden Sie unter Was ist Databricks Connect?.

Hinweis

Bevor Sie beginnen, Databricks Connect zu verwenden, müssen Sie den Databricks Connect-Client einrichten.

Wenn Sie Databricks Connect und IntelliJ IDEA mit dem Scala-Plug-In verwenden möchten, um ein Scala-sbt-Beispielprojekt zu erstellen, auszuführen und zu debuggen, befolgen Sie diese Anweisungen. Diese Anweisungen wurden 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.

  1. Stellen Sie sicher, dass das Java Development Kit (JDK) lokal installiert ist. Databricks empfiehlt, dass Ihre lokale JDK-Version mit der Version des JDK auf Ihrem Azure Databricks-Cluster übereinstimmt.

  2. Starten Sie IntelliJ IDEA.

  3. Klicken Sie auf Datei > Neu > Projekt.

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

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

  6. Klicken Sie für Sprache auf Scala.

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

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

    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.

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

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

    Hinweis

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

  11. Geben Sie für das Paketpräfix einen Paketpräfixwert 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.

  14. Fügen Sie das Databricks Connect-Paket hinzu: Wenn Ihr neues Scala-Projekt geöffnet ist, öffnen Sie in Ihrem Projekttoolfenster (>Windows-Tool Projekt anzeigen)> die Datei mit dem Namen build.sbt im Projektnamenziel>.

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

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

    Ersetzen Sie 14.3.1 durch die Version der Databricks Connect-Bibliothek, die der Databricks-Runtime-Version auf Ihrem Cluster entspricht. Die Versionsnummern der Databricks Connect-Bibliothek finden Sie im zentralen Maven-Repository.

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

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

  18. Fügen Sie Code hinzu: Öffnen Sie in Ihrem Projekt-Toolfenster die Datei mit dem NamenMain.scala in project-name> src > Main Scala >.

  19. Ersetzen Sie den vorhandenen Code in der Datei durch den folgenden Code, und speichern Sie dann 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()
      }
    }
    
  20. Führen Sie den Code aus: Starten Sie das Zielcluster in Ihrem Azure Databricks-Remotearbeitsbereich.

  21. Klicken Sie nach dem Start des Clusters im Hauptmenü auf Ausführen > Main ausführen.

  22. Im Fenster Tool ausführen (>-Windows-Tool> ausführen anzeigen) werden auf der Registerkarte Main die ersten 5 Zeilen der Tabelle samples.nyctaxi.trips angezeigt. Der gesamte Scala-Code wird lokal ausgeführt, während der gesamte Scala-Code mit DataFrame-Vorgängen im Cluster im Azure Databricks-Remotearbeitsbereich ausgeführt wird. Die Ausführungsantworten werden an den lokalen Aufrufer zurückgesendet.

  23. Debuggen Sie den Code: Starten Sie das Zielcluster in Ihrem Azure Databricks-Remotearbeitsbereich, wenn es noch nicht ausgeführt wird.

  24. Klicken Sie im obigen Code auf den Bundsteg neben df.limit(5).show(), um einen Haltepunkt festzulegen.

  25. Klicken Sie nach dem Start des Clusters im Hauptmenü auf Ausführen > Main Debuggen.

  26. Klicken Sie im Debugtool-Fenster (>Windows-Tool> Debuggen anzeigen) auf der Registerkarte Konsole auf das Rechnersymbol (Ausdruckauswerten).

  27. Geben Sie den Ausdruck df.schema ein, und klicken Sie auf Auswerten, um das Schema von DataFrame anzuzeigen.

  28. Klicken Sie auf der Randleiste des Toolfensters Debuggen auf den grünen Pfeil (Programm fortsetzen).

  29. Im Konsolenbereich werden die ersten 5 Zeilen der Tabelle samples.nyctaxi.trips angezeigt. Der gesamte Scala-Code wird lokal ausgeführt, während der gesamte Scala-Code mit DataFrame-Vorgängen im Cluster im Azure Databricks-Remotearbeitsbereich ausgeführt wird. Die Ausführungsantworten werden an den lokalen Aufrufer zurückgesendet.