Erstellen, Entwickeln und Verwalten von Synapse-Notebooks in Azure Synapse Analytics
Ein Synapse-Notebook ist eine Weboberfläche zum Erstellen von Dateien, die Live-Code, Visualisierungen und beschreibenden Text enthalten. Notebooks sind ein guter Ausgangspunkt, um Ideen zu überprüfen und schnelle Experimente zu verwenden, um Erkenntnisse aus Ihren Daten zu gewinnen. Notebooks werden auch häufig bei der Datenvorbereitung, Datenvisualisierung, Machine Learning und andere Big Data-Szenarien verwendet.
Mit einem Synapse-Notebook können Sie:
- Ohne Einrichtungsaufwand sofort loslegen.
- Daten mit integrierten Sicherheitsfeatures auf Unternehmensniveau schützen.
- Daten in Rohformaten (CSV, TXT, JSON usw.), verarbeiteten Dateiformaten (Parquet, Delta Lake, ORC usw.) und tabellarischen SQL-Datendateien gegen Spark und SQL analysieren.
- Produktiv sein mit erweiterten Funktionen zur Dokumenterstellung und integrierter Datenvisualisierung.
In diesem Artikel wird beschrieben, wie Notebooks in Synapse Studio verwendet werden.
Erstellen eines Notebooks
Ein Notebook kann auf zwei Arten erstellt werden. Sie können ein neues Notebook erstellen oder ein vorhandenes Notebook aus dem Objekt-Explorer in einen Synapse-Arbeitsbereich importieren. Synapse-Notebooks erkennen Standard Jupyter Notebook IPYNB-Dateien.
Entwickeln von Notebooks
Notebooks bestehen aus Zellen, bei denen es sich um einzelne Code- oder Textblöcke handelt, die unabhängig oder als Gruppe ausgeführt werden können.
Wir bieten umfangreiche Vorgänge zum Entwickeln von Notebooks:
- Hinzufügen einer Zelle
- Festlegen einer primären Sprache
- Verwenden mehrerer Sprachen
- Verwenden von temporären Tabellen zum Verweisen auf Daten in verschiedenen Sprachen
- IDE-artiges IntelliSense
- Codeausschnitte
- Textzelle mit Symbolleisten-Schaltflächen formatieren
- Zellenvorgang rückgängig machen/wiederholen
- Kommentieren von Codezellen
- Verschieben einer Zelle
- Löschen einer Zelle
- Reduzieren einer Zelleneingabe
- Reduzieren einer Zellenausgabe
- Notebook-Gliederung
Hinweis
In den Notebooks wird automatisch eine SparkSession für Sie erstellt und in einer Variable namens spark
gespeichert. Es gibt auch eine Variable für SparkContext, die sc
heißt. Benutzer*innen können direkt auf diese Variablen zugreifen und sollten ihre Werte nicht ändern.
Hinzufügen einer Zelle
Es gibt mehrere Möglichkeiten, um Ihrem Notebook eine neue Zelle hinzuzufügen.
Zeigen Sie mit dem Mauszeiger auf den Bereich zwischen zwei Zellen, und wählen Sie Code oder Markdown aus.
Verwenden Sie aznb-Tastenkombinationen im Befehlsmodus. Drücken Sie A, um eine Zelle oberhalb der aktuellen Zelle einzufügen. Drücken Sie B, um eine Zelle unterhalb der aktuellen Zelle einzufügen.
Festlegen einer primären Sprache
Synapse-Notebooks unterstützen vier Apache Spark-Sprachen:
- PySpark (Python)
- Spark (Scala)
- Spark SQL
- .NET Spark (C#)
- SparkR (R)
Sie können die primäre Sprache für neu hinzugefügte Zellen in der Dropdownliste in der oberen Befehlsleiste festlegen.
Verwenden mehrerer Sprachen
Sie können in einem Notebook mehrere Sprachen verwenden, indem Sie den richtigen Magic-Befehl für die Sprache am Anfang einer Zelle angeben. In der folgenden Tabelle werden die Magic-Befehle zum Wechseln von Zellensprachen aufgelistet.
Magic-Befehl | Sprache | BESCHREIBUNG |
---|---|---|
%%pyspark | Python | Eine Python-Abfrage im Spark-Kontext ausführen. |
%%spark | Scala | Eine Scala-Abfrage im Spark-Kontext ausführen. |
%%sql | SparkSQL | Eine SparkSQL-Abfrage im Spark-Kontext ausführen. |
%%csharp | .NET für Spark (C#) | Führen Sie eine Abfrage vom Typ .NET für Spark (C#) für Spark-Kontext aus. |
%%sparkr | R | Eine R-Abfrage im Spark-Kontext ausführen. |
Die folgende Abbildung zeigt ein Beispiel dafür, wie Sie eine PySpark-Abfrage mit dem Magic-Befehl %%pyspark schreiben können oder eine SparkSQL-Abfrage mit dem Magic-Befehl %%sql in einem Spark (Scala) -Notebook. Beachten Sie, dass die primäre Sprache für das Notebook auf PySpark festgelegt ist.
Verwenden von temporären Tabellen zum Verweisen auf Daten in verschiedenen Sprachen
Sie können in einem Synapse-Notebook nicht direkt auf Daten oder Variablen in verschiedenen Sprachen verweisen. In Spark kann auf eine temporäre Tabelle in verschiedenen Sprachen verwiesen werden. Im Folgenden finden Sie ein Beispiel, wie Sie einen Scala
-Datenrahmen in PySpark
und SparkSQL
mittels einer temporären Spark-Tabelle als Problemumgehung lesen können.
Lesen Sie in Zelle 1 einen Datenrahmen von einem SQL-Poolconnector mithilfe von Scala, und erstellen Sie eine temporäre Tabelle.
%%spark val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable") scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
In Zelle 2 fragen Sie die Daten mithilfe von Spark SQL ab.
%%sql SELECT * FROM mydataframetable
In Zelle 3 verwenden Sie die Daten in PySpark.
%%pyspark myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
IDE-artiges IntelliSense
Synapse-Notebooks sind in den Monaco-Editor integriert, um den Zellen-Editor mit IDE-style IntelliSense auszustatten. Syntaxhervorhebung, Fehlermarkierungen und automatische Codevervollständigungen helfen Ihnen dabei, Code zu schreiben und Probleme schneller zu erkennen.
Die IntelliSense-Funktionen befinden sich in unterschiedlichen Stadien der Entwicklung für verschiedene Sprachen. In der folgenden Tabelle können Sie sehen, was unterstützt wird.
Languages | Syntaxhervorhebung | Syntaxfehlermarkierungen | Codevervollständigung für Syntax | Codevervollständigung für Variablen | Codevervollständigung für Systemfunktionen | Codevervollständigung für Benutzerfunktionen | Intelligenter Einzug | Codefaltung |
---|---|---|---|---|---|---|---|---|
PySpark (Python) | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Spark (Scala) | Ja | Ja | Ja | Ja | Ja | Ja | - | Ja |
SparkSQL | Ja | Ja | Ja | Ja | Ja | - | - | - |
.NET für Spark (C#) | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
Hinweis
Eine aktive Spark-Sitzung ist erforderlich, um von der Codevervollständigung für Variablen, der Codevervollständigung für Systemfunktionen, der Codevervollständigung für Benutzerfunktionen für .NET für Spark (C#) zu profitieren.
Codeausschnitte
Synapse-Notebooks stellen Codeausschnitte bereit, die die Eingabe häufig verwendeter Codemuster erleichtern, wie z. B. das Konfigurieren Ihrer Spark-Sitzung, das Lesen von Daten als Spark DataFrame oder das Zeichnen von Diagrammen mit matplotlib usw.
Codeausschnitte werden in Tastaturkurzbefehlen im IDE Stil in IntelliSense gemeinsam mit anderen Vorschlägen angezeigt. Der Inhalt der Codeausschnitte richtet sich nach der Codezellensprache. Sie können die verfügbaren Ausschnitte anzeigen, indem Sie Snippet oder beliebige Schlüsselwörter eingeben, die im Titel für den Ausschnitt im Codezellen-Editor angezeigt werden. Wenn Sie beispielsweise read eingeben, wird eine Liste der Codeausschnitte zum Lesen von Daten aus verschiedenen Datenquellen angezeigt.
Textzelle mit Symbolleisten-Schaltflächen formatieren
Sie können die Formatschaltflächen auf der Textzellen-Symbolleiste verwenden, um allgemeine Markdown-Aktionen durchzuführen. Darunter fällt das Formatieren von Text als fett oder kursiv, Absätze/Kopfzeilen mittels einer Dropdownliste und das Einfügen von Code, von unsortierten Listen, von sortierten Listen, Hyperlinks und Bildern aus URLs.
Zellenvorgang rückgängig machen/wiederholen
Wählen Sie die Schaltfläche Rückgängig / Wiederholen oder drücken Sie Z / Umschalt+Y um die letzten Zellenvorgänge aufzuheben. Sie können jetzt bis zu 10 der letzten zurückliegenden Zellenaktionen rückgängig machen/wiederherstellen.
Unterstützte Rückgängig-Zellenvorgänge:
- Zelle einfügen/löschen: Sie können die Löschvorgänge rückgängig machen, indem Sie Rückgängig auswählen. Der Textinhalt wird zusammen mit der Zelle beibehalten.
- Eine Zelle neu anordnen.
- Umschalten von Parametern.
- Konvertieren zwischen der Codezelle und der Markdown-Zelle.
Hinweis
Die Textvorgänge in der Zelle und die Codezellenkommentare sind nicht rückgängig zu machen. Sie können jetzt bis zu 10 der letzten zurückliegenden Zellenaktionen rückgängig machen/wiederherstellen.
Kommentieren von Codezellen
Wählen Sie auf der Notebook-Symbolleiste die Schaltfläche Kommentare, um den Bereich Kommentare zu öffnen.
Wählen Sie Code in der Codezelle aus, klicken Sie im Bereich Kommentare auf Neu, fügen Sie Kommentare hinzu, und klicken Sie dann auf die Schaltfläche Kommentar posten, um zu speichern.
Sie können einen Kommentar bearbeiten, einen Thread auflösenoder einen Thread löschen ausführen, indem Sie neben Ihrem Kommentar auf die Schaltfläche Mehr klicken.
Verschieben einer Zelle
Klicken Sie auf die linke Seite einer Zelle, und ziehen Sie sie an die gewünschte Position.
Löschen einer Zelle
Wählen Sie zum Löschen einer Zelle die Schaltfläche „Löschen“ auf der rechten Seite der Zelle.
Sie können auch Tastenkombinationen im Befehlsmodus verwenden. Drücken Sie UMSCHALT+D, um die aktuelle Zelle zu löschen.
Reduzieren einer Zelleneingabe
Wählen Sie auf der Zellensymbolleiste die Auslassungspunkte für Weitere Befehle (...) und dann Eingabe ausblenden aus, um die Eingabe der aktuellen Zelle zu reduzieren. Zum Erweitern wählen Sie Eingabe anzeigen aus, während die Zelle reduziert ist.
Reduzieren einer Zellenausgabe
Wählen Sie auf der Zellensymbolleiste die Auslassungspunkte für Weitere Befehle (...) und dann Ausgabe ausblenden aus, um die Ausgabe der aktuellen Zelle zu reduzieren. Zum Erweitern wählen Sie Ausgabe anzeigen aus, während die Zelle reduziert ist.
Notebook-Gliederung
Das Feld „Gliederung (Inhaltsverzeichnis)“ stellt den ersten Markdownheader einer beliebigen Markdownzelle in einem Randleistenfenster für die schnelle Navigation dar. Die Gliederungsrandleiste ist in der Größe veränderbar und reduzierbar, um den Bildschirm optimal anzupassen. Sie können die Schaltfläche Gliederung auf der Notebook-Befehlsleiste auswählen, um die Randleiste zu öffnen oder auszublenden.
Ausführen von Notebooks
Sie können die Codezellen in Ihrem Notebook einzeln oder alle gleichzeitig ausführen. Status und Fortschritt jeder Zelle werden im Notebook dargestellt.
Ausführen einer Zelle
Es gibt mehrere Methoden, um den Code in einer Zelle auszuführen.
Zeigen Sie mit dem Mauszeiger auf die Zelle, die Sie ausführen möchten, und wählen Sie die Schaltfläche Zelle ausführen aus, oder drücken Sie STRG+EINGABE.
Verwenden Sie Tastenkombinationen im Befehlsmodus. Drücken Sie UMSCHALT+EINGABE, um die aktuelle Zelle auszuführen und die Zelle darunter auszuwählen. Drücken Sie ALT+EINGABE, um die aktuelle Zelle auszuführen und darunter eine neue Zelle einzufügen.
Ausführen aller Zellen
Wählen Sie die Schaltfläche Alle ausführen aus, um alle Zellen im aktuellen Notebook nacheinander auszuführen.
Ausführen aller darüber- oder darunterliegenden Zellen
Erweitern Sie die Dropdownliste über die Schaltfläche Alle ausführen, und wählen Sie dann Zellen oberhalb ausführen aus, um alle Zellen oberhalb der aktuellen Zelle nacheinander auszuführen. Wählen Sie Zellen unterhalb ausführen aus, um alle Zellen unterhalb der aktuellen nacheinander auszuführen.
Abbrechen aller ausgeführten Zellen
Wählen Sie die Schaltfläche Alle abbrechen aus, um die ausgeführten oder in der Warteschlange wartenden Zellen abzubrechen.
Notebookverweis
Sie können den Magic-Befehl %run <notebook path>
verwenden, um im Kontext des aktuellen Notebooks auf ein anderes Notebook zu verweisen. Alle im Referenznotebook definierten Variablen sind im aktuellen Notebook verfügbar. Der Magic-Befehl %run
unterstützt geschachtelte Aufrufe, aber keine rekursiven Aufrufe. Es wird eine Ausnahme angezeigt, wenn die Anweisungstiefe größer als fünf ist.
Beispiel: %run /<path>/Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
.
Notebookverweise funktionieren sowohl im interaktiven Modus als auch in der Synapse-Pipeline.
Hinweis
- Der
%run
-Befehl unterstützt derzeit nur das Übergeben eines absoluten Pfads oder Notebooknamens nur als Parameter, ein relativer Pfad wird nicht unterstützt. - Der
%run
-Befehl unterstützt derzeit nur bis zu 4 Parameterwerttypen:int
,float
,bool
,string
. Der Variablenersetzungsvorgang wird nicht unterstützt. - Die Notebooks, auf die verwiesen wird, müssen veröffentlicht werden. Sofern nicht die Option Auf unveröffentlichtes Notebook verweisen aktiviert ist, müssen Sie die Notebooks veröffentlichen, auf die verwiesen werden soll. Synapse Studio erkennt die nicht veröffentlichten Notebooks aus dem Git-Repository nicht.
- Referenzierte Notebooks unterstützen keine Anweisung, deren die Tiefe größer als fünf ist.
Variablen-Explorer
Synapse-Notebooks verfügen über einen integrierten Variablen-Explorer, in dem Sie die Liste der Variablennamen, -typen, -längen und -werte in der aktuellen Spark-Sitzung für PySpark-Zellen (Python) anzeigen können. Weitere Variablen werden automatisch angezeigt, wenn sie in den Codezellen definiert werden. Durch Klicken auf die einzelnen Spaltenüberschriften werden die Variablen in der Tabelle sortiert.
Sie können die Schaltfläche Variablen in der Notebook-Befehlsleiste auswählen, um den Variablen-Explorer zu öffnen oder auszublenden.
Hinweis
Der Variablen-Explorer unterstützt nur Python.
Zellenstatusindikator
Unterhalb der Zelle wird ein schrittweiser Zellenausführungsstatus angezeigt, damit Sie den aktuellen Fortschritt verfolgen können. Nachdem die Ausführung der Zelle abgeschlossen wurde, wird eine Ausführungszusammenfassung mit Gesamtdauer und Endzeit angezeigt, die zur späteren Bezugnahme dort auch aufbewahrt wird.
Spark-Statusanzeige
Ein Synapse-Notebook basiert ausschließlich auf Spark. Codezellen werden im serverlosen Apache Spark-Pool remote ausgeführt. Eine Spark-Auftragsstatusanzeige wird mit einem Statusbalken in Echtzeit angezeigt, um Ihnen den Status der Auftragsausführung zu verdeutlichen. Anhand der Anzahl der Aufgaben pro Auftrag oder Phase können Sie die parallele Ebene Ihres Spark-Auftrags identifizieren. Sie können außerdem die Spark-Benutzeroberfläche eines spezifischen Auftrags (oder einer Phase) erweitern, indem Sie den Link im Auftragsnamen (oder Phasennamen) auswählen.
Spark-Sitzungskonfiguration
Sie können in Sitzung konfigurieren die Timeoutdauer sowie die Anzahl und Größe der Executors angeben, die für die aktuelle Spark-Sitzung gelten sollen. Sie müssen die Spark-Sitzung neu starten, damit die Konfigurationsänderungen wirksam werden. Alle zwischengespeicherten Notebook-Variablen werden gelöscht.
Sie können auch eine Konfiguration aus der Apache Spark-Konfiguration erstellen oder eine vorhandene Konfiguration auswählen. Einzelheiten finden Sie in der Apache Spark-Konfigurationsverwaltung.
Magic-Befehl für Spark-Sitzungskonfiguration
Sie können auch Spark-Sitzungseinstellungen über einen %%configure-Magic-Befehl angeben. Die Spark-Sitzung muss neu gestartet werden, damit die Einstellungen wirksam werden. Wir empfehlen Ihnen, %%configure am Anfang Ihres Notebooks auszuführen. Hier ist ein Beispiel. Die vollständige Liste der gültigen Parameter finden Sie unter https://github.com/cloudera/livy#request-body.
%%configure
{
//You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
"driverMemory":"28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g", "472g"]
"driverCores":4, // Recommended values: [4, 8, 16, 32, 64, 80]
"executorMemory":"28g",
"executorCores":4,
"jars":["abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar","wasb[s]://<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
"conf":{
//Example of standard spark property, to find more available properties please visit:https://spark.apache.org/docs/latest/configuration.html#application-properties.
"spark.driver.maxResultSize":"10g",
//Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
"livy.rsc.sql.num-rows":"3000"
}
}
Hinweis
- Es wird empfohlen, „DriverMemory“ und „ExecutorMemory“ in %%configure auf denselben Wert zu setzen. Dies gilt auch für „driverCores“ und „executorCores“.
- Sie können „%%configure“ in Synapse-Pipelines verwenden, aber wenn es nicht in der ersten Codezelle festgelegt wird, schlägt die Pipelineausführung fehl, weil die Sitzung nicht neu gestartet werden kann.
- Der in „mssparkutils.notebook.run“ verwendete %%configure-Befehl wird ignoriert, aber in „%run notebook“ weiterhin ausgeführt.
- Die Spark-Standardkonfigurationseigenschaften müssen im „conf“-Text verwendet werden. Wir unterstützen keine Verweise auf oberster Ebene für die Spark-Konfigurationseigenschaften.
- Einige spezielle Spark-Eigenschaften wie „spark.driver.cores“, „spark.executor.cores“, „spark.driver.memory“, „spark.executor.memory“, „spark.executor.instances“ werden im „conf“-Text nicht wirksam.
Parametrisierte Sitzungskonfiguration aus Pipeline
Mit der parametrisierten Sitzungskonfiguration können Sie den Wert im „%%configure“-Magic-Befehl durch Parameter der Pipelineausführung (Notebook-Aktivität) ersetzen. Beim Vorbereiten der „%%configure“-Codezelle können Sie Standardwerte (im folgenden Beispiel auch konfigurierbar, 4 und „2000“) mit einem Objekt wie dem folgenden überschreiben:
{
"activityParameterName": "paramterNameInPipelineNotebookActivity",
"defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
}
%%configure
{
"driverCores":
{
"activityParameterName": "driverCoresFromNotebookActivity",
"defaultValue": 4
},
"conf":
{
"livy.rsc.sql.num-rows":
{
"activityParameterName": "rows",
"defaultValue": "2000"
}
}
}
Notebooks verwenden den Standardwert, wenn sie direkt im interaktiven Modus ausgeführt werden oder die Notebook-Aktivität der Pipeline keinen Parameter angibt, der „activityParameterName“ entspricht.
Während des Pipelineausführungsmodus können Sie Notebook-Aktivitätseinstellungen der Pipeline wie folgt konfigurieren:
Wenn Sie die Sitzungskonfiguration ändern möchten, sollte der Name der Notebook-Aktivitätsparameter der Pipeline mit dem Namen von „activityParameterName“ im Notebook identisch sein. Wenn Sie diese Pipeline ausführen, wird in diesem Beispiel „driverCores“ in „%%configure“ durch 8 ersetzt, und „livy.rsc.sql.num-rows“ wird durch 4000 ersetzt.
Hinweis
Wenn die Ausführung der Pipeline aufgrund der Verwendung dieses neuen „%%configure“-Magic-Befehls fehlgeschlagen ist, können Sie weitere Fehlerinformationen überprüfen, indem Sie die „%%configure“-Magic-Zelle im interaktiven Modus des Notebooks ausführen.
Einfügen von Daten in ein Notebook
Sie können Daten aus Azure Blob Storage, Azure Data Lake Store Gen 2 und dem SQL-Pool laden, wie in den folgenden Codebeispielen gezeigt.
Lesen einer CSV-Datei aus Azure Data Lake Store Gen2 als Spark-Datenrahmen
from pyspark.sql import SparkSession
from pyspark.sql.types import *
account_name = "Your account name"
container_name = "Your container name"
relative_path = "Your path"
adls_path = 'abfss://%s@%s.dfs.core.windows.net/%s' % (container_name, account_name, relative_path)
df1 = spark.read.option('header', 'true') \
.option('delimiter', ',') \
.csv(adls_path + '/Testfile.csv')
Lesen einer CSV-Datei aus Azure Blob Storage als Spark-Datenrahmen
from pyspark.sql import SparkSession
# Azure storage access info
blob_account_name = 'Your account name' # replace with your blob name
blob_container_name = 'Your container name' # replace with your container name
blob_relative_path = 'Your path' # replace with your relative folder path
linked_service_name = 'Your linked service name' # replace with your linked service name
blob_sas_token = mssparkutils.credentials.getConnectionStringOrCreds(linked_service_name)
# Allow SPARK to access from Blob remotely
wasb_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token)
print('Remote blob path: ' + wasb_path)
df = spark.read.option("header", "true") \
.option("delimiter","|") \
.schema(schema) \
.csv(wasbs_path)
Lesen von Daten aus einem primären Speicherkonto
Sie können auf Daten im primären Speicherkonto direkt zugreifen. Es besteht keine Notwendigkeit, die geheimen Schlüssel bereitzustellen. Klicken Sie im Daten-Explorer mit der rechten Maustaste auf eine Datei, und wählen Sie Neues Notebook aus, um ein neues Notebook mit einem automatisch generierten Datenextraktor anzuzeigen.
IPython-Widgets
Widgets sind ereignisbehaftete Python-Objekte, die eine Darstellung im Browser besitzen – häufig als Steuerelement wie ein Schieberegler, ein Textfeld usw. IPython-Widgets funktionieren nur in der Python-Umgebung und werden in anderen Sprachen (z. B. Scala, SQL, C#) nicht unterstützt.
So verwenden Sie das IPython-Widget
Sie müssen zuerst das Modul
ipywidgets
importieren, um das Jupyter Widget-Framework zu verwenden.import ipywidgets as widgets
Sie können die Funktion
display
der obersten Ebene verwenden, um ein Widget zu rendern, oder einen Ausdruck vom Typ widget in der letzten Zeile der Codezelle belassen.slider = widgets.IntSlider() display(slider)
slider = widgets.IntSlider() slider
Führen Sie die Zelle aus. Das Widget wird dann im Ausgabebereich angezeigt.
Sie können mehrere
display()
-Aufrufe verwenden, um dieselbe Widgetinstanz mehrmals zu rendern, wobei diese aber miteinander synchronisiert bleiben.slider = widgets.IntSlider() display(slider) display(slider)
Um zwei Widgets unabhängig voneinander zu rendern, erstellen Sie zwei Widgetinstanzen:
slider1 = widgets.IntSlider() slider2 = widgets.IntSlider() display(slider1) display(slider2)
Unterstützte Widgets
Widgettyp | Widgets |
---|---|
Numerische Widgets | IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText |
Boolesche Widgets | ToggleButton, Checkbox, Valid |
Auswahlwidgets | Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple |
Zeichenfolgenwidgets | Text, Text area, Combobox, Password, Label, HTML, HTML Math, Image, Button |
Wiedergabewidgets (Animation) | Date picker, Color picker, Controller (Datumsauswahl, Farbauswahl, Controller) |
Container-/Layoutwidgets | Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked |
Bekannte Einschränkungen
Die folgenden Widgets werden noch nicht unterstützt. Sie können aber wie folgt eine Problemumgehung befolgen:
Funktionalität Problemumgehung Output
-WidgetSie können stattdessen die print()
-Funktion verwenden, um Text in stdout zu schreiben.widgets.jslink()
Sie können die widgets.link()
-Funktion verwenden, um zwei ähnliche Widgets zu verknüpfen.FileUpload
-WidgetNoch nicht unterstützt. Im Unterschied zur IPython-Funktion
display
unterstützt die von Synapse bereitgestellte globaledisplay
-Funktion die Anzeige mehrerer Widgets in einem Aufruf (d. h.display(a, b)
) nicht.Wenn Sie ein Notebook schließen, das IPython-Widget enthält, können Sie es erst anzeigen oder damit interagieren, wenn Sie die entsprechende Zelle erneut ausführen.
Speichern von Notebooks
Sie können ein einzelnes Notebook oder alle Notebooks in Ihrem Arbeitsbereich speichern.
Um an einem einzelnen Notebook vorgenommene Änderungen zu speichern, wählen Sie auf der Notebook-Befehlsleiste die SchaltflächeVeröffentlichen aus.
Um alle Notebooks in Ihrem Arbeitsbereich zu speichern, wählen Sie die Schaltfläche Alle veröffentlichen auf der Befehlsleiste des Arbeitsbereichs aus.
In den Notebook-Eigenschaften können Sie konfigurieren, ob die Zellenausgabe beim Speichern eingeschlossen werden soll.
Magic-Befehle
Sie können bekannte Jupyter-Magic-Befehle in Synapse-Notebooks verwenden. In der folgenden Liste finden Sie die derzeit verfügbaren Magic-Befehle. Teilen Sie uns Ihre Anwendungsfälle auf GitHub mit, damit wir weitere Magic-Befehle erstellen können, um Ihre Anforderungen zu erfüllen.
Hinweis
Nur die folgenden Magic-Befehle werden in einer Synapse-Pipeline unterstützt: %%pyspark, %%spark, %%csharp, %%sql.
Verfügbare Zeilen-Magics: %lsmagic, %time, %timeit, %history, %run, %load
Verfügbare Zeilen-Magics: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%html, %%configure
Auf unveröffentlichtes Notizbuch verweisen
Das Verweisen auf ein nicht veröffentlichtes Notebook ist hilfreich, wenn Sie „lokal“ debuggen möchten. Wenn Sie dieses Feature aktivieren, ruft die Notebookausführung den aktuellen Inhalt im Webcache ab. Wenn Sie eine Zelle mit einer Anweisung zum Verweisen auf Notebooks ausführen, verweisen Sie auf die vorhandenen Notebooks im aktuellen Notebookbrowser anstatt auf gespeicherte Versionen im Cluster. Das bedeutet, dass andere Notebooks sofort auf die Änderungen im Notebook-Editor verweisen können, ohne dass sie veröffentlicht (Livemodus) oder committet (Git-Modus) werden müssen. Wenn Sie diesen Ansatz verwenden, können Sie eine Beeinträchtigung allgemeiner Bibliotheken während des Entwicklungs- oder Debugprozesses ganz einfach vermeiden.
Sie können „Auf unveröffentlichtes Notebook verweisen“ im Bereich „Eigenschaften“ aktivieren:
Vergleiche unterschiedlicher Fälle finden Sie in der folgenden Tabelle:
Beachten Sie, dass %run und mssparkutils.notebook.run hier dasselbe Verhalten haben. Wir verwenden %run
hier als Beispiel.
Fall | Disable | Aktivieren |
---|---|---|
Livemodus | ||
– Nb1 (veröffentlicht) %run Nb1 |
Ausführen der veröffentlichten Version von Nb1 | Ausführen der veröffentlichten Version von Nb1 |
– Nb1 (Neu) %run Nb1 |
Fehler | Ausführen der neuen Nb1 |
– Nb1 (zuvor veröffentlicht, bearbeitet) %run Nb1 |
Ausführen der veröffentlichten Version von Nb1 | Ausführen der bearbeiteten Version von Nb1 |
Git-Modus | ||
– Nb1 (veröffentlicht) %run Nb1 |
Ausführen der veröffentlichten Version von Nb1 | Ausführen der veröffentlichten Version von Nb1 |
– Nb1 (Neu) %run Nb1 |
Fehler | Ausführen der neuen Nb1 |
– Nb1 (Nicht veröffentlicht, committet) %run Nb1 |
Fehler | Ausführen der committeten Nb1 |
– Nb1 (zuvor veröffentlicht, committet) %run Nb1 |
Ausführen der veröffentlichten Version von Nb1 | Ausführen der committeten Version von Nb1 |
– Nb1 (zuvor veröffentlicht, neu im Current Branch) %run Nb1 |
Ausführen der veröffentlichten Version von Nb1 | Ausführen der neuen Nb1 |
– Nb1 (nicht veröffentlicht, zuvor committet, bearbeitet) %run Nb1 |
Fehler | Ausführen der bearbeiteten Version von Nb1 |
– Nb1 (zuvor veröffentlicht und committet, bearbeitet) %run Nb1 |
Ausführen der veröffentlichten Version von Nb1 | Ausführen der bearbeiteten Version von Nb1 |
Zusammenfassung
- Wenn deaktiviert, immer die veröffentlichte Version ausführen.
- Wenn aktiviert, ist die Priorität: bearbeitet/neu > committet > veröffentlicht.
Verwalten der aktiven Sitzung
Sie können Ihre Notebooksitzungen nun bequem wiederverwenden, ohne neue Sitzungen starten zu müssen. Synapse Notebook unterstützt jetzt die Verwaltung Ihrer aktiven Sitzungen in der Liste Sitzungen verwalten. Sie können dort alle Sitzungen im aktuellen Arbeitsbereich anzeigen, die von Ihnen über das Notebook gestartet wurden.
In der Liste Aktive Sitzungen werden die Sitzungsinformationen und das zugehörige Notebook angezeigt, das derzeit an die Sitzung angefügt ist. Sie können von hier aus die Verbindung mit dem Notebook trennen, die Sitzung beenden und Überwachungsinformationen anzeigen. Darüber hinaus können Sie Ihr ausgewähltes Notebook problemlos mit einer aktiven Sitzung in der Liste verbinden, die von einem anderen Notebook gestartet wurde. Die Sitzung wird vom vorherigen Notebook getrennt (wenn sie sich nicht im Leerlauf befindet) und dann an das aktuelle Notebook angefügt.
Python-Protokollierung in Notebook
Informationen zum Anzeigen von Python-Protokollen und Festlegen verschiedener Protokollebenen und -formate können Sie dem folgenden Beispielcode entnehmen:
import logging
# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
handler.setFormatter(formatter)
# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)
# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)
# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")
# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")
Integrieren eines Notebooks
Hinzufügen eines Notebooks zu einer Pipeline
Wählen Sie in der oberen rechten Ecke Zur Pipeline hinzufügen aus, um ein Notebook zu einer vorhandenen Pipeline hinzuzufügen oder eine neue Pipeline zu erstellen.
Festlegen einer Parameterzelle
Um Ihr Notebook zu parametrisieren, wählen Sie die Auslassungspunkte (...) aus, um auf der Zellensymbolleiste auf Weitere Befehle zuzugreifen. Klicken Sie dann auf Parameterzelle umschalten, um die Zelle als Parameterzelle festzulegen.
Azure Data Factory sucht nach der Parameterzelle und behandelt diese Zelle als Standard für die Parameter, die zur Ausführungszeit übermittelt werden. Die Ausführungs-Engine fügt eine neue Zelle mit Eingabeparametern unterhalb der Parameterzelle hinzu, um die Standardwerte zu überschreiben.
Zuweisen von Parameterwerten über eine Pipeline
Sobald Sie ein Notebook mit Parametern erstellt haben, können Sie dieses über eine Pipeline mit der Synapse Analytics-Aktivität ausführen. Nachdem Sie die Aktivität zu Ihrem Pipelinecanvas hinzugefügt haben, können Sie die Parameterwerte auf der Registerkarte Einstellungen im Abschnitt Basisparameter festlegen.
Beim Zuweisen von Parameterwerten können Sie die Pipelineausdruckssprache oder Systemvariablen verwenden.
Tastenkombinationen
Ähnlich wie Jupyter Notebooks verfügen Synapse-Notebooks über eine modale Benutzeroberfläche. Mit der Tastatur werden unterschiedliche Aktionen ausgeführt, je nachdem, in welchem Modus sich die Notebook-Zelle befindet. Synapse-Notebooks unterstützen die folgenden zwei Modi für eine bestimmte Codezelle: Befehlsmodus und Bearbeitungsmodus.
Eine Zelle befindet sich im Befehlsmodus, wenn Sie kein Textcursor zur Eingabe auffordert. Wenn sich eine Zelle im Befehlsmodus befindet, können Sie das Notebook als Ganzes bearbeiten, aber keine Eingaben in einzelne Zellen vornehmen. Sie wechseln in den Befehlsmodus, indem Sie
ESC
drücken oder mit der Maus außerhalb des Editor-Bereichs einer Zelle klicken.Der Bearbeitungsmodus wird durch einen Textcursor angezeigt, der Sie zur Eingabe im Editor-Bereich auffordert. Wenn sich eine Zelle im Bearbeitungsmodus befindet, können Sie etwas in die Zelle eingeben. Sie wechseln in den Bearbeitungsmodus, indem Sie
Enter
drücken oder mit der Maus auf den Editor-Bereich einer Zelle klicken.
Tastenkombinationen im Befehlsmodus
Aktion | Tastenkombinationen für Synapse-Notebooks |
---|---|
Aktuelle Zelle ausführen und die darunter auswählen | UMSCHALT+EINGABE |
Aktuelle Zelle ausführen und darunter einfügen | ALT+EINGABE |
Aktuelle Zelle ausführen | STRG+EINGABE |
Zelle darüber auswählen | Nach oben |
Zelle darunter auswählen | Nach unten |
Vorherige Zelle auswählen | K |
Nächste Zelle auswählen | J |
Zelle oberhalb einfügen | Ein |
Zelle unterhalb einfügen | B |
Ausgewählte Zellen löschen | UMSCHALT+D |
In den Bearbeitungsmodus wechseln | EINGABETASTE |
Tastenkombinationen im Bearbeitungsmodus
Mithilfe der folgenden Tastenkombinationen können Sie in Synapse-Notebooks leichter navigieren und Code ausführen, während sie sich im Bearbeitungsmodus befinden.
Action | Tastenkombinationen für Synapse-Notebooks |
---|---|
Cursor nach oben verschieben | Nach oben |
Cursor nach unten verschieben | Nach unten |
Rückgängig | STRG+Z |
Wiederholen | STRG+Y |
Auskommentieren/Auskommentierung aufheben | STRG+/ |
Wort davor löschen | STRG+RÜCKTASTE |
Wort danach löschen | STRG+DELETE |
Zum Anfang der Zelle wechseln | STRG+POS1 |
Zum Ende der Zelle wechseln | STRG+ENDE |
Ein Wort nach links wechseln | STRG+NACH-LINKS |
Ein Wort nach rechts wechseln | STRG+NACH-RECHTS |
Alle auswählen | STRG+A |
Einziehen | STRG+] |
Einzug entfernen | STRG+[ |
In den Befehlsmodus wechseln | Esc |
Nächste Schritte
- Beispiele für Synapse-Notebooks
- Schnellstart: Erstellen eines Apache Spark-Pools in Azure Synapse Analytics mithilfe von Webtools
- Was ist Apache Spark in Azure Synapse Analytics?
- Verwenden von .NET für Apache Spark mit Azure Synapse Analytics
- Dokumentation zu .NET für Apache Spark
- Azure Synapse Analytics