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.
- Die Python-Version dieses Artikels finden Sie unter Databricks Connect für Python.
- Die R-Version dieses Artikels finden Sie unter Databricks Connect für R.
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 Ziel-Azure Databricks-Arbeitsbereich und -Cluster müssen die Anforderungen für die Computekonfiguration 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
undconfiguration
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 MLJDK 8 16,0 JDK 17 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:
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
Installieren Sie
curl
undzip
über das WSL. Weitere Informationen finden Sie in der Dokumentation zu Ihrem Betriebssystem.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
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 wiecommand not found: databricks
erhalten, oder wenn Siedatabricks -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:
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>
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 Befehldatabricks auth env --profile <profile-name>
ausführen.Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.
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.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
Starten Sie IntelliJ IDEA.
Klicken Sie im Hauptmenü auf Datei > Neu > Projekt.
Geben Sie Ihrem Projekt einen aussagekräftigen Namen.
Klicken Sie unter Speicherort auf das Ordnersymbol, und folgen Sie den Anweisungen auf dem Bildschirm, um den Pfad zu Ihrem neuen Scala-Projekt anzugeben.
Klicken Sie für Sprache auf Scala.
Klicken Sie für das Buildsystem auf sbt.
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.
Wählen Sie in der sbt-Dropdownliste die neueste Version aus.
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 ML2.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.
Stellen Sie sicher, dass das Kontrollkästchen Quellen herunterladen neben Scala aktiviert ist.
Geben Sie für das Paketpräfix einen Paketpräfixwert für die Quellen Ihres Projekts ein, z. B.
org.example.application
.Stellen Sie sicher, dass das Feld Beispielcode hinzufügen aktiviert ist.
Klicken Sie auf Erstellen.
Schritt 3: Hinzufügen des Databricks Connect-Pakets
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.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.Klicken Sie auf das Benachrichtigungssymbol sbt-Änderungen laden, um Ihr Scala-Projekt mit dem neuen Bibliotheksspeicherort und der Abhängigkeit zu aktualisieren.
Warten Sie, bis die Statusanzeige
sbt
am unteren Rand der IDE ausgeblendet wird. Der Ladevorgangsbt
kann einige Minuten dauern.
Schritt 4: Hinzufügen von Code
Öffnen Sie in Ihrem Projekt-Toolfenster die Datei mit dem Namen
Main.scala
in Scala >.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
- Starten Sie den Zielcluster in Ihrem Azure Databricks-Remotearbeitsbereich.
- Klicken Sie nach dem Start des Clusters im Hauptmenü auf Ausführen > Main ausführen.
- 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
- 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. - Wählen Sie im Hauptmenü Ausführen > Main Debuggen aus.
- Klicken Sie im Debuggen-Toolfenster (Anzeigen> Windows-Tool> Debuggen) auf der Registerkarte Konsole auf das Rechnersymbol (Ausdruck auswerten).
- Geben Sie den Ausdruck
df.schema
ein, und klicken Sie auf Auswerten, um das Schema von DataFrame anzuzeigen. - Klicken Sie auf der Randleiste des Toolfensters Debuggen auf den grünen Pfeil (Programm fortsetzen).
- Im Konsolenbereich werden die ersten 5 Zeilen der Tabelle
samples.nyctaxi.trips
angezeigt.
Nächste Schritte
Weitere Informationen zu Databricks Connect finden Sie z. B. in den folgenden Artikeln:
Informationen zur Verwendung anderer Azure Databricks-Authentifizierungstypen als ein persönliches Azure Databricks-Zugriffstoken finden Sie unter Konfigurieren von Verbindungseigenschaften.
Informationen zur Verwendung anderer IDEs finden Sie in den folgenden Themen:
Weitere Codebeispiele finden Sie unter Codebeispiele für Databricks Connect für Scala.
Weitere komplexere Codebeispiele finden Sie im Repository für Beispielanwendungen für Databricks Connect auf GitHub.
Weitere Informationen zum Migrieren von Databricks Connect für Databricks Runtime bis Version 12.2 LTS an Databricks Connect für Databricks Runtime ab Version 13.3 LTS finden Sie unter Migrieren an Databricks Connect für Scala.
Sehen Sie sich auch die Informationen zur Problembehandlung und die Einschränkungen an.