Verwenden von Spark in Notebooks

Abgeschlossen

Sie können viele verschiedene Arten von Anwendungen unter Spark ausführen, darunter Code in Python- oder Scala-Skripts, Java-Code, der als Java-Archiv (JAR) kompiliert wurde, und andere. Spark wird in der Regel für zwei Arten von Workloads verwendet:

  • Batch- oder Streamverarbeitungsaufträge zur Erfassung, Bereinigung und Transformation von Daten, die oft als Teil einer automatisierten Pipeline ausgeführt werden.
  • Interaktive Analysesitzungen zum Erkunden, Analysieren und Visualisieren von Daten.

Grundlagen zum Bearbeiten von Notizbüchern und Code

Databricks-Notizbücher sind der primäre Arbeitsbereich für Data Science, Engineering und Analytics. Sie sind um Zellen herum aufgebaut, die entweder Code oder formatierten Text (Markdown) enthalten können. Dieser zellbasierte Ansatz erleichtert das Experimentieren, Testen und Erläutern Ihrer Arbeit an einem zentralen Ort. Sie können eine einzelne Zelle, eine Gruppe von Zellen oder das gesamte Notizbuch mit Ausgaben wie Tabellen, Diagrammen oder Nur-Text ausführen, die direkt unterhalb der ausgeführten Zelle angezeigt werden. Zellen können neu angeordnet, reduziert oder gelöscht werden, damit Ihr Notizbuch organisiert und lesbar bleibt.

Screenshot eines Notebooks in Azure Databricks.

Eine große Stärke von Databricks-Notizbüchern ist die Unterstützung mehrerer Sprachen. Obwohl die Standardeinstellung häufig Python ist, können Sie innerhalb desselben Notebooks mithilfe der Sprachbefehle %sql, %scala, %r oder %python zu SQL, Scala oder R wechseln. Diese Flexibilität bedeutet, dass Sie ETL-Logik in SQL, Machine Learning-Code in Python schreiben und dann Ergebnisse mit R visualisieren können – alles in einem Workflow. Databricks bietet außerdem AutoVervollständigen und Syntax-Hervorhebung, wodurch Fehler leichter erfasst und die Codierung beschleunigt werden kann.

Bevor Sie Code ausführen, muss ein Notebook mit Compute verbunden sein, z. B. mit einem Cluster oder serverlosem Compute. Ohne zugeordnete Compute-Ressource können Codezellen nicht ausgeführt werden. Sie können vorhandene Compute-Ressourcen über die Notebook-Symbolleiste auswählen oder einen neuen Cluster erstellen und Notebooks nach Bedarf entfernen und wieder verbinden. Diese Verbindung ermöglicht Es Ihrem Notizbuch, die verteilte Verarbeitung in Azure Databricks zu verwenden.

Verwenden von Genie Code

Genie Code (früher als Databricks Assistant bezeichnet) ist ein KI-basierter Programmierassistent, der in Notizbücher integriert ist. Ziel ist es, Ihnen dabei zu helfen, Code effizienter zu schreiben, zu verstehen und zu verbessern, indem Sie den Kontext aus Ihrem Notebook und Arbeitsbereich verwenden. Sie kann neuen Code aus Aufforderungen in natürlicher Sprache generieren, komplexe Logik erläutern, Korrekturen für Fehler vorschlagen und die Leistung optimieren. Dies macht es nicht nur für Anfänger nützlich, Spark oder SQL zu lernen, sondern auch für erfahrene Benutzer, die die Entwicklung beschleunigen und sich wiederholende Arbeit reduzieren möchten.

Der Assistent ist kontextbewusst, was bedeutet, dass er Metadaten von Unity Catalog verwendet, z. B. Tabellennamen, Spaltennamen und Beschreibungen, um maßgeschneiderte Vorschläge bereitzustellen. Wenn Ihr Arbeitsbereich beispielsweise Unity Catalog aktiviert hat, kann er diese Metadaten beim Schreiben von SQL-Abfragen verwenden. Auf diese Weise können Sie etwas wie „den durchschnittlichen Umsatz nach Region aus der Verkaufstabelle auswählen“ eingeben und SQL-Code erhalten, der Ihrem tatsächlichen Datenmodell entspricht. Ebenso können Sie sie in Python bitten, Datentransformationen oder Spark-Aufträge zu erstellen, ohne jede Funktionssignatur aus dem Speicher zurückrufen zu müssen.

Sie interagieren mit dem Assistenten auf zwei Hauptmethoden:

  1. Aufforderungen in natürlicher Sprache – Sie können einfache englische Anweisungen in der Chat-like-Schnittstelle eingeben, und sie fügt Code in Ihr Notizbuch ein.

  2. Slash-Befehle – Schnelle Befehle wie /explain, /fix, oder /optimize, mit denen Sie ausgewählten Code bearbeiten können. Beispielsweise erläutert /explain den Code in einer Zelle, /fix schlägt eine Lösung für Codefehler vor und /optimize schlägt Leistungsverbesserungen vor.

Screenshot des KI-Assistenten in einem Azure Databricks-Notizbuch.

Im Agentmodus kann der Assistent größere Änderungen über mehrere Zellen hinweg vorschlagen. Beispielsweise kann sie wiederholte Logik in eine einzelne wiederverwendbare Funktion umgestalten oder einen Workflow neu strukturieren, um die Lesbarkeit zu verbessern. Sie behalten die Kontrolle: Sie überprüfen die vorgeschlagenen Änderungen und akzeptieren oder lehnen sie ab, bevor sie auf Ihr Notebook angewendet werden.

Freigeben und Modularisieren von Code

Um Duplizierungen zu vermeiden und die Wartungsfreundlichkeit zu verbessern, unterstützt Databricks das Ablegen von wiederverwendbarem Code in Dateien (z. B. .py-Module) im Arbeitsbereich, die von Notizbüchern importiert werden können. Es gibt Mechanismen zum Koordinieren von Notizbüchern (d. h. Ausführen von Notizbüchern aus anderen Notizbüchern oder Aufträgen mit mehreren Aufgaben), sodass Sie Workflows erstellen können, die freigegebene Funktionen oder Module verwenden. Die Verwendung %run ist eine einfachere Möglichkeit, ein anderes Notizbuch einzuschließen, jedoch mit einigen Einschränkungen.

Debuggen, Versionsverlauf und Rückgängigmachen von Fehlern

Databricks bietet einen integrierten interaktiven Debugger für Python-Notebooks. Nachdem Sie Python Notebook Interactive Debugger in Ihren Entwicklereinstellungen aktiviert haben, können Sie Haltepunkte festlegen, die Ausführung durchlaufen und Variablen überprüfen. Dadurch können Fehler effektiver isoliert werden als durch Print-/Log-Debugging.

Ein kommentierter Screenshot der Debuggersymbolleiste im Azure Databricks-Notizbuch.

Notizbücher verwalten auch den Versionsverlauf automatisch: Sie können vergangene Momentaufnahmen anzeigen, Versionsbeschreibungen bereitstellen, alte Versionen wiederherstellen oder den Verlauf löschen/löschen. Wenn Sie die Git-Integration verwenden, können Sie Notizbücher/Dateien in Ihrem Repository synchronisieren und versionieren.

Screenshot des Wiederherstellungsversionsverlaufs im Azure Databricks-Notizbuch.

Tipp

Weitere Informationen zum Arbeiten mit Notizbüchern in Azure Databricks finden Sie im Artikel Notizbücher in der Dokumentation zu Azure Databricks.