Freigeben über


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 werden die ersten Schritte mit Databricks Connect unter Verwendung von Scala mit IntelliJ IDEA und dem Scala-Plug-In veranschaulicht.

Mit Databricks Connect können Sie beliebte IDEs wie IntelliJ IDEA, Notebookserver und andere benutzerdefinierte Anwendungen mit Azure Databricks-Clustern verbinden. Weitere Informationen finden Sie unter Was ist Databricks Connect?.

Lernprogramm

Wenn Sie dieses Tutorial überspringen und stattdessen eine andere IDE verwenden möchten, lesen Sie den Abschnitt Nächste Schritte.

Anforderungen

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

  • Ihr Azure Databricks-Zielarbeitsbereich und -Zielcluster müssen die Anforderungen für die Clusterkonfiguration für Databricks Connect erfüllen.

  • Sie müssen ihre Cluster-ID verfügbar haben. Um Ihre Cluster-ID abzurufen, wählen Sie in Ihrem Arbeitsbereich auf der Randleiste Compute und dann den Namen Ihres Clusters aus. 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. Databricks empfiehlt, dass die Version Ihrer JDK-Installation, die Sie verwenden, mit der JDK-Version auf Ihrem Azure Databricks-Cluster übereinstimmt. Die folgende Tabelle zeigt die JDK-Version für jede unterstützte Databricks-Runtime.

    Databricks Runtime-Version JDK-Version
    13.3 LTS - 15.0,
    13.3 ML LTS - 15.0 ML
    JDK 8

    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, die 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 wie folgt, falls sie noch nicht installiert ist:

    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
    

    Windows

    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 zu Ihrem Betriebssystem.

    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
    

    Hinweis

    Wenn Sie databricks ausführen, aber einen Fehler wie command not found: databricks erhalten, oder wenn Sie databricks -v ausführen und eine Versionsnummer von 0.18 oder niedriger aufgeführt ist, bedeutet dies, dass Ihr Computer nicht die richtige Version der ausführbaren Databricks-CLI-Datei finden kann. Weitere Informationen zum Beheben dieses Problems finden Sie unter Überprüfen Ihrer CLI-Installation.

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 die EINGABETASTE (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.

    Um eine Liste vorhandener Profile abzurufen, führen Sie in der Databricks-CLI den Befehl databricks auth profiles in einem separaten Terminal oder in einer separaten Eingabeaufforderung aus. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, können Sie den Befehl databricks auth env --profile <profile-name> ausführen.

  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. Führen Sie einen der folgenden Befehle aus, um den aktuellen OAuth-Tokenwert und den Zeitstempel für den bevorstehenden Ablauf des Tokens eines Profils anzuzeigen:

    • 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 dem gleichen --host-Wert verfügen, müssen Sie möglicherweise die Optionen --host und -p angeben, damit die Databricks-CLI die richtigen übereinstimmenden OAuth-Tokeninformationen findet.

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.

    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. Die folgende Tabelle zeigt die Scala-Version für jede unterstützte Databricks-Runtime:

    Databricks Runtime-Version Scala-Version
    13.3 LTS - 15.0,
    13.3 ML LTS - 15.0 ML
    2.12.15

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

Erstellen des IntelliJ IDEA-Projekts

Schritt 3: Hinzufügen des Databricks Connect-Pakets

  1. Wenn Ihr neues Scala-Projekt geöffnet ist, öffnen Sie in Ihrem Projekt-Toolfenster (Anzeigen > Windows-Tool > Projekt) die Datei mit dem Namen build.sbt in Projekname> 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:

    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.

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

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

Installation des Databricks Connect-Pakets

Schritt 4: Hinzufügen von Code

  1. Öffnen Sie in Ihrem Projekt-Toolfenster die Datei mit dem Namen Main.scala in project-name> 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: Ausführen des Codes

  1. Starten Sie den Zielcluster in Ihrem Azure Databricks-Remotearbeitsbereich.
  2. Klicken Sie nach dem Start des Clusters im Hauptmenü auf Ausführen > Main ausführen.
  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 6: Debuggen des Codes

  1. Wählen Sie, während der Zielcluster noch ausgeführt wird, im vorherigen Code den Bundsteg neben df.limit(5).show() aus, um einen Breakpoint festzulegen.
  2. Wählen Sie im Hauptmenü Ausführen > Main Debuggen aus.
  3. Klicken Sie im Debuggen-Toolfenster (Anzeigen> Windows-Tool> Debuggen) auf der Registerkarte Konsole auf das Rechnersymbol (Ausdruck auswerten).
  4. Geben Sie den Ausdruck df.schema ein, und klicken Sie auf Auswerten, um das Schema von DataFrame anzuzeigen.
  5. Klicken Sie auf der Randleiste des Toolfensters Debuggen auf den grünen Pfeil (Programm fortsetzen).
  6. Im Konsolenbereich werden die ersten 5 Zeilen der Tabelle samples.nyctaxi.trips angezeigt.

Debuggen des IntelliJ IDEA-Projekts

Nächste Schritte

Weitere Informationen zu Databricks Connect finden Sie z. B. in den folgenden Artikeln: