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.
Dieser Artikel behandelt die bekannten Einschränkungen von Databricks Notebooks. Weitere Ressourcen zu Einschränkungen finden Sie unter Einschränkungen für Ressourcen.
Notebook-Größe
- Revisionsmomentaufnahmen werden automatisch gespeichert, manuelles Speichern und Klonen für alle Notizbücher bis zu 100 MB unterstützt.
- Import und Export werden für IPYNB-Notizbücher mit Größen bis zu 100 MB unterstützt.
- Import und Export werden für DBC-Archive, HTML, R Markdown und Quell-Notizbücher bis zu 10 MB unterstützt.
- Einzelne Zellen eines Notebooks haben einen Grenzwert von 6 MB.
Notebook-Zellenausgänge
- Tabellenergebnisse sind auf 10.000 Zeilen oder 2 MB beschränkt, je nachdem, was niedriger ist.
- Auftragscluster verfügen über eine maximale Notebookausgabegröße von 30 MB.
- In Databricks Runtime 17.0 und höher sowie in der serverlosen Umgebung 3:
- Die maximale Zellenausgabegröße ist standardmäßig auf 10 MB festgelegt.
- Dieser Grenzwert kann in Python-Zellen auf einen beliebigen Wert zwischen 1 MB und 20 MB (einschließlich) mithilfe der folgenden Zellmagie angepasst werden:
%set_cell_max_output_size_in_mb <size_in_MB>Dieser Grenzwert gilt dann für alle Zellen im Notizbuch. - Wenn die Zellenausgabe den konfigurierten Größengrenzwert überschreitet, wird die Ausgabe abgeschnitten, damit sie in den Grenzwert passt. Die Verkürzung wird so vorgenommen, dass so viel nützliche Ausgabe wie möglich erhalten bleibt.
- In Databricks Runtime 16.4 LTS und älter und Serverles Environment 2 und älter:
- Textergebnisse geben maximal 50.000 Zeichen zurück.
- In Databricks Runtime 12.2 und höher können Sie diesen Grenzwert bis zu 20 MB erhöhen, indem Sie die Spark-Konfigurationseigenschaft festlegen.
spark.databricks.driver.maxReplOutputLength - Wenn die Zellausgabe den konfigurierten Größengrenzwert überschreitet, wird die Ausgabe vollständig verworfen.
Notizbuchdebugger
Einschränkungen des Notebook-Debugger:
- Der Debugger funktioniert nur mit Python. Es unterstützt weder Scala noch R.
- Um auf den Debugger zuzugreifen, muss Ihr Notizbuch mit einer der folgenden Computeressourcen verbunden sein:
- Serverloses Computing
- Computing mit Zugriffsmodus, der auf Standard (ehemals freigegeben) festgelegt ist, in Databricks Runtime 14.3 LTS und höher
- Berechnen mit Zugriffsmodus auf Dediziert eingestellt (früher Einzelbenutzer) in Databricks Runtime 13.3 LTS und höher
- Computing mit Zugriffsmodus, der auf Keine freigegebene Isolation festgelegt ist, in Databricks Runtime 13.3 LTS und höher
- Der Debugger unterstützt das Schrittweisen in Python-Bibliotheken nicht.
- Sie können keine anderen Befehle im Notebook ausführen, wenn eine Debug-Sitzung aktiv ist.
- Der Debugger unterstützt das Debuggen bei Unterprozessen nicht, wenn eine Verbindung mit serverlosen Compute - und Clustern hergestellt wird, wobei der Zugriffsmodus auf "Standard" festgelegt ist.
SQL Warehouse-Notebooks
Einschränkungen von SQL Warehouses Notebooks:
- Wenn sie an ein SQL-Warehouse angefügt werden, weisen Ausführungskontexte ein Leerlauftimeout von 8 Stunden auf.
ipywidgets
Einschränkungen von ipywidgets:
- Ein Notebook mit ipywidgets muss an einen ausgeführten Cluster angefügt werden.
- Widgetzustände werden nicht über Notebooksitzungen hinaus beibehalten. Wenn das Notebook an einen Cluster angefügt wird, müssen Widgetzellen immer erneut ausgeführt werden, um sie zu rendern.
- Die ipywidgets für Kennwort und Controller werden nicht unterstützt.
- HTMLMath- und Label-Widgets mit LaTeX-Ausdrücken werden nicht ordnungsgemäß gerendert. (Beispiel:
widgets.Label(value=r'$$\frac{x+1}{x-1}$$')wird nicht ordnungsgemäß gerendert.) - Widgets werden möglicherweise nicht korrekt gerendert, wenn sich das Notebook im Dark Mode befindet, insbesondere farbige Widgets.
- Widgetausgaben können nicht in Notebookdashboardansichten verwendet werden.
- Die maximale Nachrichtenpayloadgröße für ein ipywidget beträgt 5 MB. Widgets mit Bildern oder umfangreichen Textdaten werden möglicherweise nicht ordnungsgemäß gerendert.
Databricks-Widgets
Einschränkungen von Databricks-Widgets:
In einem Notebook können maximal 512 Widgets erstellt werden.
Ein Widgetname ist auf 1024 Zeichen beschränkt.
Eine Widgetbezeichnung ist auf 2048 Zeichen beschränkt.
Maximal 2048 Zeichen können in ein Text-Widget eingegeben werden.
Es kann maximal 1024 Auswahlmöglichkeiten für ein Mehrfachauswahl-, Kombinationsfeld- oder Dropdown-Widget geben.
Es gibt ein bekanntes Problem, bei dem der Status eines Widgets nach dem Drücken von Alles ausführen nicht ordnungsgemäß gelöscht wird, selbst wenn das Widget im Code gelöscht oder entfernt wurde. In diesem Fall wird eine Diskrepanz zwischen den visuellen und gedruckten Zuständen des Widgets angezeigt. Wenn Sie die Zellen einzeln neu ausführen, können Sie dieses Problem umgehen. Um dieses Problem vollständig zu vermeiden, empfiehlt Databricks die Verwendung von ipywidgets.
Sie sollten nicht direkt auf den Widgetstatus in asynchronen Kontexten wie Threads, Unterprozessen oder Structured Streaming (foreachBatch) zugreifen, da sich der Widget-Status ändern kann, während der asynchrone Code läuft. Wenn Sie in einem asynchronen Kontext auf den Widgetzustand zugreifen müssen, übergeben Sie ihn als Argument. Angenommen, Sie haben den folgenden Code, der Threads verwendet:
import threading def thread_func(): # Unsafe access in a thread value = dbutils.widgets.get('my_widget') print(value) thread = threading.Thread(target=thread_func) thread.start() thread.join()Databricks empfiehlt, stattdessen ein Argument zu verwenden:
# Access widget values outside the asynchronous context and pass them to the function value = dbutils.widgets.get('my_widget') def thread_func(val): # Use the passed value safely inside the thread print(val) thread = threading.Thread(target=thread_func, args=(value,)) thread.start() thread.join()Widgets können in der Regel keine Argumente zwischen verschiedenen Sprachen innerhalb eines Notizbuchs übergeben. Sie können
arg1für ein Widget in einer Python-Zelle erstellen und in einer SQL- oder Scala-Zelle verwenden, wenn Sie eine Zelle nach der anderen ausführen. Dies funktioniert jedoch nicht, wenn Sie Alle ausführen verwenden oder das Notebook als Auftrag ausführen. Einige Umgehungsmöglichkeiten sind:- Für Notebooks, für die keine Sprachen kombiniert werden können, können Sie ein Notebook für jede Sprache erstellen und die Argumente übergeben, wenn Sie das Notebook ausführen.
- Sie können über einen
spark.sql()-Anruf auf das Widget zugreifen. Beispiel für Python:spark.sql("select getArgument('arg1')").take(1)[0][0].