Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie Code in Databricks-Notebooks entwickeln, einschließlich AutoVervollständigen-Funktion, automatischer Formatierung für Python und SQL, der Kombination von Python und SQL in einem Notebook sowie der Verfolgung des Versionsverlaufs für ein Notebook.
Weitere Informationen zu erweiterten Funktionen, die im Editor verfügbar sind, z. B. AutoVervollständigen, Variable Auswahl, Unterstützung für mehrere Cursor und parallele Diffs, finden Sie unter Navigieren im Databricks-Notizbuch und im Datei-Editor.
Wenn Sie das Notebook oder den Datei-Editor verwenden, steht der Databricks-Assistent zur Verfügung, um Code zu generieren, zu erläutern und zu debuggen. Weitere Informationen finden Sie unter Verwenden des Databricks-Assistenten .
Databricks-Notebooks enthalten auch einen integrierten interaktiven Debugger für Python-Notebooks. Siehe Debuggen von Notebooks.
Modularisieren des Codes
Mit Databricks Runtime 11.3 LTS und höher können Sie Quellcodedateien im Azure Databricks-Arbeitsbereich erstellen und verwalten und diese Dateien dann nach Bedarf in Ihre Notebooks importieren.
Weitere Informationen zum Arbeiten mit Quellcodedateien finden Sie unter Freigeben von Code zwischen Databricks-Notebooks und Arbeiten mit Python- und R-Modulen.
Formatieren von Codezellen
Azure Databricks bietet Tools, mit denen Sie Python- und SQL-Code in Notebookzellen schnell und einfach formatieren können. Diese Tools reduzieren den Aufwand für die Formatierung Ihres Codes und tragen dazu bei, in allen Notebooks die gleichen Codierungsstandards umzusetzen.
Python schwarz Formatierer Bibliothek
Wichtig
Dieses Feature befindet sich in der Public Preview.
Azure Databricks unterstützt die Python-Codeformatierung mithilfe von Black im Notebook. Das Notebook muss mit einem Cluster verbunden sein, auf dem die Python-Pakete black und tokenize-rt installiert sind.
In Databricks Runtime 11.3 LTS und höher installiert Azure Databricks black und tokenize-rt vorab. Sie können den Formatierer direkt verwenden, ohne diese Bibliotheken installieren zu müssen.
Unter Databricks Runtime 10.4 LTS und früher müssen Sie black==22.3.0 und tokenize-rt==4.2.1 aus PyPI in Ihrem Notebook oder Cluster installieren, um den Python-Formatierer nutzen zu können. Sie können den folgenden Befehl in Ihrem Notebook ausführen:
%pip install black==22.3.0 tokenize-rt==4.2.1
oder die Bibliothek auf Ihrem Cluster installieren.
Weitere Informationen zum Installieren von Bibliotheken finden Sie unter Python-Umgebungsverwaltung.
Für Dateien und Notebooks in Databricks Git-Ordnern können Sie den Python-Formatierer basierend auf der pyproject.toml-Datei konfigurieren. Um dieses Feature zu verwenden, erstellen Sie eine pyproject.toml-Datei im Stammverzeichnis des Git-Ordners, und konfigurieren Sie sie gemäß dem Konfigurationsformat „Black“. Bearbeiten Sie den Abschnitt [tool.black] in der Datei. Die Konfiguration wird angewendet, wenn Sie eine beliebige Datei und ein Notebook in diesem Git-Ordner formatieren.
Formatieren von Python- und SQL-Zellen
Sie benötigen die KANN BEARBEITEN-Berechtigung für das Notebook, um Code zu formatieren.
Azure Databricks verwendet die Gethue/sql-formatter-Bibliothek, um SQL und den Black-Codeformatierer für Python zu formatieren.
Sie können die Formatierung auf folgende Weise auslösen:
Format einer einzelnen Zelle
- Tastenkombination: Drücken Sie CMD+UMSCHALT+F.
- Befehlskontextmenü:
- SQL-Zelle formatieren: Wählen Sie SQL formatieren im Befehlskontext-Dropdownmenü einer SQL-Zelle aus. Dieses Menüelement ist nur in SQL-Notebookzellen oder in Zellen mit einem
%sqlSprach-Magic-Befehl sichtbar. - Python-Zelle formatieren: Wählen Sie Python formatieren im Befehlskontext-Dropdownmenü einer Python-Zelle aus. Dieses Menüelement ist nur in Python-Notebookzellen oder in Zellen mit einem
%pythonSprach-Magic-Befehl sichtbar.
- SQL-Zelle formatieren: Wählen Sie SQL formatieren im Befehlskontext-Dropdownmenü einer SQL-Zelle aus. Dieses Menüelement ist nur in SQL-Notebookzellen oder in Zellen mit einem
- Menü Bearbeiten eines Notebooks: Wählen Sie eine Python- oder SQL-Zelle aus, und wählen Sie dann Bearbeiten > Zelle(n) formatieren aus.
Formatieren mehrerer Zellen
Aktivieren Sie mehrere Zellen und dann Auswählen Bearbeiten > Format Zelle(n). Wenn Sie Zellen mit mehreren Sprachen auswählen, werden nur SQL- und Python-Zellen formatiert. Dies schließt auch Zellen mit Verwendung von
%sqlund%pythonein.Formatieren Sie alle Python- und SQL-Zellen im Notizbuch
Wählen Sie Bearbeiten > Notebook formatieren aus. Wenn Ihr Notebook mehrere Zellen beinhaltet, werden nur SQL- und Python-Zellen formatiert. Dies schließt auch Zellen mit Verwendung von
%sqlund%pythonein.
Informationen zum Anpassen der Formatierung Ihrer SQL-Abfragen finden Sie unter SQL-Anweisungen im benutzerdefinierten Format.
Einschränkungen der Codeformatierung
- Black erzwingt PEP 8-Standards für einen Einzug aus 4 Leerzeichen. Der Einzug ist nicht konfigurierbar.
- Das Formatieren eingebetteter Python-Zeichenfolgen in einer SQL-UDF wird nicht unterstützt. Ebenso wird das Formatieren von SQL-Zeichenfolgen innerhalb einer Python-UDF nicht unterstützt.
Codesprachen in Notebooks
Standardsprache festlegen
Die Standardsprache für das Notizbuch wird unterhalb des Notizbuchnamens angezeigt.
Um die Standardsprache zu ändern, klicken Sie auf die Schaltfläche „Sprache“, und wählen Sie im Dropdownmenü die neue Sprache aus. Um sicherzustellen, dass vorhandene Befehle weiterhin funktionieren, wird Befehlen der vorherigen Standardsprache automatisch ein Magic-Befehl für Sprache vorangestellt.
Mix Sprachen
Standardmäßig verwenden Zellen die Standardsprache des Notebooks. Sie können die Standardsprache in einer Zelle überschreiben, indem Sie auf die Schaltfläche „Sprache“ klicken und eine Sprache aus dem Dropdownmenü auswählen.
Alternativ können Sie auch den Magic-Befehl für Sprache %<language> am Anfang einer Zelle verwenden. Die unterstützten Magic-Befehle sind: %python, %r, %scala und %sql.
Hinweis
Wenn Sie einen Magic-Befehl für Sprache aufrufen, wird der Befehl an die REPL im Ausführungskontext für das Notebook gesendet. Variablen, die in einer Sprache (und somit in der REPL für diese Sprache) definiert sind, sind in der REPL einer anderen Sprache nicht verfügbar. REPLs können den Status nur über externe Ressourcen wie Dateien im DBFS oder Objekte im Objektspeicher gemeinsam nutzen.
Notebooks unterstützen auch einige zusätzliche Magic-Befehle:
-
%sh: Ermöglicht Ihnen, Shell-Code in Ihrem Notizbuch auszuführen. Fügen Sie die Option-ehinzu, damit die Zelle einen Fehler auslöst, wenn der Shellbefehl einen Beendigungsstatus ungleich null aufweist. Dieser Befehl wird nur auf dem Apache Spark-Treiber und nicht auf den Workern ausgeführt. Um einen Shellbefehl auf allen Knoten auszuführen, verwenden Sie ein Initialisierungsskript. -
%fs: Ermöglicht die Nutzung vondbutilsDateisystembefehlen. Um beispielsweise den Befehldbutils.fs.lszum Auflisten von Dateien auszuführen, können Sie stattdessen%fs lsangeben. Weitere Informationen finden Sie unter Arbeiten mit Dateien in Azure Databricks. -
%md: Ermöglicht Ihnen, verschiedene Arten von Dokumentation einzuschließen, einschließlich Text, Bilder und mathematische Formeln und Gleichungen. Siehe nächster Abschnitt.
SQL-Syntaxhervorhebung und AutoVervollständigen in Python-Befehlen
Syntaxhervorhebung und SQL-AutoVervollständigen sind verfügbar, wenn Sie SQL in einem Python-Befehl verwenden, z. B. in einem spark.sql-Befehl.
SQL-Zellenergebnisse erkunden
In einem Databricks-Notizbuch werden Ergebnisse aus einer SQL-Sprachen-Zelle automatisch als impliziter DataFrame verfügbar gemacht, der der Variable „_sqldf“ zugewiesen wird. Sie können diese Variable dann in allen Python- und SQL-Zellen verwenden, die Sie danach ausführen, unabhängig von ihrer Position im Notizbuch.
Hinweis
Für diese Funktion gelten folgende Einschränkungen:
- Die
_sqldfVariable ist in Notebooks, die ein SQL-Lagerort für Compute nutzen, nicht verfügbar. - Die Verwendung von
_sqldfin nachfolgenden Python-Zellen wird in Databricks Runtime 13.3 und höher unterstützt. - Die Verwendung von
_sqldfin nachfolgenden SQL-Zellen wird nur auf Databricks Runtime 14.3 und höher unterstützt. - Wenn die Abfrage die Schlüsselwörter
CACHE TABLEoderUNCACHE TABLEverwendet, ist die Variable_sqldfnicht verfügbar.
Der Screenshot unten zeigt, wie _sqldf in nachfolgenden Python- und SQL-Zellen verwendet werden kann:
Wichtig
Die Variable _sqldf wird jedes Mal neu zugewiesen, wenn eine SQL-Zelle ausgeführt wird. Um den Verweis auf ein spezifisches DataFrame-Ergebnis nicht zu verlieren, weisen Sie es einem neuen Variablennamen zu, bevor Sie die nächste SQL-Zelle ausführen:
Python
new_dataframe_name = _sqldf
SQL
ALTER VIEW _sqldf RENAME TO new_dataframe_name
SQL-Zellen parallel ausführen
Während ein Befehl ausgeführt wird und Ihr Notebook an einen interaktiven Cluster angefügt ist, können Sie eine SQL-Zelle gleichzeitig mit dem aktuellen Befehl ausführen. Die SQL-Zelle wird in einer neuen parallelen Sitzung ausgeführt.
So führen Sie eine Zelle parallel aus:
Führen Sie die Zelle aus.
Klicken Sie auf Jetzt ausführen. Die Zelle wird sofort ausgeführt.
Da die Zelle in einer neuen Sitzung ausgeführt wird, werden temporäre Ansichten, UDFs und der implizite Python-DatenFrame (_sqldf) für parallel ausgeführte Zellen nicht unterstützt. Darüber hinaus werden die Standardkatalog- und Datenbanknamen während der parallelen Ausführung verwendet. Wenn Ihr Code auf eine Tabelle in einem anderen Katalog oder in einer anderen Datenbank verweist, müssen Sie den Tabellennamen mithilfe des dreiteiligen Namespace (catalog.schema.table) angeben.
Ausführen von SQL-Zellen in einem SQL-Warehouse
Sie können SQL-Befehle in einem Databricks-Notebook in einem SQL-Warehouse ausführen, einem Computetyp, der für SQL-Analysen optimiert ist. Weitere Informationen finden Sie unter Verwenden eines Notebooks mit einem SQL-Warehouse.
Code in serverlosem Computing auf Compute ausführen
Sie können Code im Assistenten auf Databricks auf serverlosem Compute ausführen, was die Standardberechnung für Databricks ist. Für Seiten, auf denen bereits ein Compute ausgewählt ist (zum Beispiel Notizbücher oder SQL-Editor), verwendet Databricks standardmäßig dieses. Informationen zu Computetypen finden Sie unter Compute.
Wenn Sie keinen Zugriff auf serverlose Berechnungen haben, müssen Sie über eine Computeinstanz verfügen, um Code im Assistentenbereich auszuführen.
Verwenden von Magischen Befehlen
Databricks-Notizbücher unterstützen verschiedene Magische Befehle, die Funktionen über die Standardsyntax hinaus erweitern, um allgemeine Aufgaben zu vereinfachen. Magische Befehle werden für Zeilen- und Zellmagie mit % vorangestellt.
| Magic-Befehl | Beispiel | Beschreibung |
|---|---|---|
%python |
%pythonprint("Hello") |
Ändern Sie die Zellensprache zu Python. Führt Python-Code in der Zelle aus. |
%r |
%rprint("Hello") |
Ändern Sie die Zellensprache auf R. Führt R-Code in der Zelle aus. |
%scala |
%scalaprintln("Hello") |
Wechseln Sie die Sprache der Zelle zu Scala. Führt Scala-Code in der Zelle aus. |
%sql |
%sqlSELECT * FROM table |
Wechseln der Zellensprache zu SQL. Ergebnisse sind wie _sqldf in Python/SQL-Zellen verfügbar. |
%md |
%md# TitleContent here |
Wechseln Sie die Zellensprache auf Markdown. Rendert Markdown-Inhalt in der Zelle. Unterstützt Text, Bilder, Formeln und LaTeX. |
%pip |
%pip install pandas |
Installieren Von Python-Paketen (Notizbuchbereich). Siehe Notebook-spezifische Python-Bibliotheken. |
%run |
%run /path/to/notebook |
Führen Sie ein anderes Notizbuch aus, und importieren Sie deren Funktionen und Variablen. Siehe Notizbuchworkflows. |
%fs |
%fs ls /path |
Führen Sie Dbutils-Dateisystembefehle aus. Kurzform für dbutils.fs Befehle. Siehe "Arbeiten mit Dateien". |
%sh |
%sh ls -la |
Führen Sie Shellbefehle aus. Wird nur auf Treiberknoten ausgeführt. Verwenden Sie -e, um bei Fehlern einen Ausfall zu verursachen. |
%tensorboard |
%tensorboard --logdir /logs |
TensorBoard-UI-Inline anzeigen. Nur für Databricks Runtime ML verfügbar. Siehe TensorBoard. |
%set_cell_max_output_size_in_mb |
%set_cell_max_output_size_in_mb 10 |
Legen Sie die maximale Zellenausgabegröße fest. Bereich: 1-20 MB. Gilt für alle nachfolgenden Zellen im Notizbuch. |
%skip |
%skipprint("This won't run") |
Überspringen der Zellausführung. Verhindert, dass die Zelle läuft, wenn das Notizbuch ausgeführt wird. |
Hinweis
IPython Automagic: Databricks-Notizbücher haben standardmäßig IPython Automagic aktiviert, sodass bestimmte Befehle wie pip ohne das %-Präfix funktionieren können. Funktioniert z. B pip install pandas . genauso wie %pip install pandas.
Wichtig
- Variablen und Zustand sind zwischen verschiedenen Sprach-REPLs isoliert. Python-Variablen sind beispielsweise in Scala-Zellen nicht zugänglich.
- Eine Notizbuchzelle kann nur einen Befehl zur Magie der Zelle haben, und sie muss die erste Zeile der Zelle sein.
-
%runmuss sich in einer eigenen Zelle befinden, da das gesamte Notizbuch inline ausgeführt wird. - Wenn Sie
%pipauf Databricks Runtime 12.2 LTS und niedrigeren Versionen verwenden, platzieren Sie alle Paketinstallationsbefehle am Anfang Ihres Notizbuchs, da der Python-Status nach der Installation zurückgesetzt wird.