Wie du in 5 Schritten Databricks Connect installierst
Die Web-Oberfläche von Databricks kann einem Entwickler schon mal den letzten Nerv rauben. Bereits seit langem warte ich drauf, in meiner Lieblings-IDE (Visual Studio Code) programmieren zu können. Mit dem Release von Databricks Connect wurde mein Wunsch endlich wahr!
Endlich können wir unsere Lösungen in jeder beliebigen Entwicklungsumgebung coden und dennoch live mit dem Azure Databricks-Cluster verbunden sein.
Die Installation von Databricks Connect hat mich allerdings drei Nachmittage voller Trial & Error gekostet. Um dir diese Odyssee zu ersparen, zeige ich dir die 5 Schritte, mit denen du ohne Umwege ans Ziel kommst.
Voraussetzungen
Ich gehe davon aus, dass du bereits ein Cluster in Azure Databricks angelegt hast. Da wir eine virtuelle Python-Umgebung brauchen, solltest du Anaconda installiert haben.
Auch wenn jede mit Anaconda funktionierende IDE möglich ist, orientiert sich diese Anleitung an Visual Studio Code. Hier benötigst du die Python-Extension.
Du darfst keine Spark-Installationen auf deinem PC installiert haben. Falls du Python schon nutzt, lohnt sich folgender Befehl:
- pip uninstall pyspark
Schritt 1: Konfiguriere dein Cluster
In den Advanced Options deines Clusters findest du die Spark-Config. Hier hinterlegst du die folgenden beiden Zeilen:
Schritt 2: Sammle die notwendigen Informationen
Trage die Infos zusammen, die wir in Schritt 3 für die Einrichtung benötigen.
- Der Host. Dieser bildet den Beginn der Databricks-URL, z. B. https://westeurope.azuredatabricks.net
- Die Organization ID. Auch diese bekommst du aus der URL. Es ist die Zahlenfolge, die hinter „o=“ zu finden ist, z. B. 5684337135249119
- Die Cluster ID. Im Cluster unter Advanced Options -> Tags steht die Cluster ID, z. B. 0123-062140-tines951
- Den Token. Diesen musst du in Databricks generieren. Dazu gibt es auf der Website eine Anleitung. (Vorsicht: Groß- und Kleinschreibung ist wichtig!)
- Den Port. Bei Azure ist dieser immer 8787
Schritt 3: Erstelle ein Virtual Environment und richte Databricks Connect ein
Zunächst brauchen wir eine virtuelle Python-Umgebung. Diese muss zwingend dieselbe Python-Version wie das Cluster haben. Stand Oktober 2019 ist dies meistens Python 3.5.
Öffne die Anaconda Prompt:
Erstelle eine virtuelle Umgebung:
- conda create --name bricksEnv python=3.5
Aktiviere die Umgebung:
- conda activate bricksEnv
Installiere Databricks Connect:
Wichtig: Die Version von Databricks Connect (z. B. 5.5.) muss der Version deines Clusters entsprechen!
- pip install databricks-connect==5.5.*
Richte Databricks Connect mit den Informationen aus Schritt 2 ein:
- Databricks-connect configure
Teste die Verbindung
- Databricks-connect test
Nun solltest du folgende Fehlermeldung erhalten. Diese beheben wir in Schritt 4.
Schritt 4: Java 8 installieren
Databricks Connect funktioniert nur mit Java 8. Downloade dir also die Java 8-Runtime von der Oracle Website. (Eine Registrierung ist erforderlich)
Wichtig: Installiere Java nicht im Standard-Pfad, sondern unter C:\Java
Starte nun Powershell als Administrator.
Nun must du folgenden Befehl ausführen:
- [Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Java", "Machine")
Starte nun die Anaconda Prompt neu (sonst wird die neue Umgebungsvariable nicht erkannt) und führe
- databricks-connect test
erneut aus. Die Java-Version macht nun keine Probleme mehr.
Stattdessen tritt ein neuer Fehler auf:
Diesen beheben wir in Schritt 5.
Schritt 5: Winutils installieren
Starte Powershell wieder als Administrator und führe folgende zwei Befehle aus:
- New-Item -Path "C:\Hadoop\Bin" -ItemType Directory -Force
- [Environment]::SetEnvironmentVariable("HADOOP_HOME", "C:\Hadoop", "Machine")
Lade dir nun die Winutils-Exce von Github herunter.
Lege die Datei nach dem Download in den Ordner "C:\Hadoop\Bin\“.
Starte anschließend die Anaconda Prompt neu und führe
- databricks-connect test
aus. Diesmal sollte der Test erfolgreich durchlaufen.
Geschafft!
Jetzt kannst Du Python-Befehle von Visual Studio aus gegen dein Databricks Cluster abfeuern.
Achte aber darauf, dass du im richtigen Environment bist:
Am Anfang jedes Python Files musst Du die Spark Session einfangen. Wie das geht, siehst Du in folgendem Beispielcode:
- from pyspark.sql import SparkSession
- spark = SparkSession.builder.getOrCreate()
- diamonds = spark.read.csv("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", header="true", inferSchema="true")
- diamonds.show()
Das Ergebnis sieht etwa so aus:
Ich hoffe, ich konnte dir mit diesem Tutorial weiterhelfen. Falls du noch Fragen hast, schreibe sie gerne in die Kommentare. Gerne kannst du dir das Tutorial auch nochmal in Video-Form anschauen, hier erkläre ich alles nochmal genau:
Neuen Kommentar schreiben