Delen via


Bekende beperkingen voor Databricks-notebooks

In dit artikel worden bekende beperkingen van Databricks-notebooks behandeld. Zie Resourcelimieten voor aanvullende resourcelimieten.

Laptopformaat

  • Automatisch opslaan van revisiesnapshots, handmatig opslaan en klonen worden ondersteund voor alle notebooks tot 100 MB.
  • Importeren en exporteren wordt ondersteund voor IPYNB-notebooks van maximaal 100 MB.
  • Importeren en exporteren wordt ondersteund voor DBC-archief, HTML, R Markdown en bronnotitieblokken van maximaal 10 MB.
  • Afzonderlijke notebookcellen hebben een invoerlimiet van 6 MB.

Uitvoer van notebookcellen

  • Tabelresultaten zijn beperkt tot 10.000 rijen of 2 MB, afhankelijk van wat lager is.
  • Taakclusters hebben een maximale notebookuitvoergrootte van 30 MB.
  • In Databricks Runtime 17.0 en hoger en serverloze omgeving 3:
    • De maximale grootte van de celuitvoer is standaard ingesteld op 10 MB.
    • Deze limiet kan in Python-cellen worden aangepast aan elke waarde tussen 1 MB en 20 MB (inclusief) met behulp van de volgende celmagie: %set_cell_max_output_size_in_mb <size_in_MB> Deze limiet wordt vervolgens toegepast op alle cellen in het notitieblok.
    • Wanneer de celuitvoer de geconfigureerde groottelimiet overschrijdt, wordt de uitvoer afgekapt zodat deze binnen de limiet past. Truncatie wordt zodanig toegepast dat er zoveel mogelijk nuttige uitvoer behouden blijft.
  • In Databricks Runtime 16.4 LTS en lager, en serverloze omgeving 2 en lager:
    • Tekstresultaten retourneren maximaal 50.000 tekens.
    • In Databricks Runtime 12.2 en hoger kunt u deze limiet verhogen tot 20 MB door de Spark-configuratie-eigenschap in te stellen. spark.databricks.driver.maxReplOutputLength
    • Wanneer de celuitvoer de geconfigureerde groottelimiet overschrijdt, wordt de uitvoer volledig verwijderd.

Notebook-foutopsporingsprogramma

Beperkingen van het notebook-foutopsporingsprogramma:

  • Het foutopsporingsprogramma werkt alleen met Python. Het biedt geen ondersteuning voor Scala of R.
  • Voor toegang tot het foutopsporingsprogramma moet uw notebook zijn verbonden met een van de volgende rekenresources:
    • serverloze rekenkracht
    • Compute met toegangsmodus ingesteld op Standaard (voorheen gedeeld) in Databricks Runtime 14.3 LTS en hoger
    • Rekenen met toegangsmode ingesteld op Toegewijd (voorheen één gebruiker) in Databricks Runtime 13.3 LTS en hoger
    • Bereken met de toegangsmodus ingesteld op Geen gedeelde isolatie in Databricks Runtime 13.3 LTS en hoger.
  • Het foutopsporingsprogramma biedt geen ondersteuning voor het instappen in Python-bibliotheken.
  • U kunt geen andere opdrachten uitvoeren in het notebook wanneer een foutopsporingssessie actief is.
  • Het foutopsporingsprogramma biedt geen ondersteuning voor foutopsporing voor subprocessen wanneer deze zijn verbonden met serverloze berekeningen en clusters waarvoor de toegangsmodus is ingesteld op Standard.

SQL Warehouse-notebooks

Beperkingen van SQL Warehouses-notebooks:

  • Wanneer deze aan een SQL-warehouse is gekoppeld, hebben uitvoeringscontexten een time-out voor inactiviteit van 8 uur.

ipywidgets

Beperkingen van ipywidgets:

  • Een notebook met ipywidgets moet worden gekoppeld aan een actief cluster.
  • Widgetstatussen blijven niet behouden in notebooksessies. U moet widgetcellen opnieuw uitvoeren om ze telkens weer te geven wanneer u het notebook aan een cluster koppelt.
  • Het wachtwoord en de controller ipywidgets worden niet ondersteund.
  • HTMLMath- en Labelwidgets met LaTeX-expressies worden niet correct weergegeven. (Wordt bijvoorbeeld widgets.Label(value=r'$$\frac{x+1}{x-1}$$') niet correct weergegeven.)
  • Widgets worden mogelijk niet correct weergegeven als het notitieblok zich in de donkere modus bevindt, met name gekleurde widgets.
  • Widgetuitvoer kan niet worden gebruikt in dashboardweergaven van notitieblok.
  • De maximale grootte van de nettolading van berichten voor een ipywidget is 5 MB. Widgets die gebruikmaken van afbeeldingen of grote tekstgegevens, worden mogelijk niet goed weergegeven.

Databrickswidgets

Beperkingen van Databricks-widgets:

  • Er kunnen maximaal 512 widgets worden gemaakt in een notitieblok.

  • Een widgetnaam is beperkt tot 1024 tekens.

  • Een widgetlabel is beperkt tot 2048 tekens.

  • Er kunnen maximaal 2048 tekens worden ingevoerd voor een tekstwidget.

  • Er kunnen maximaal 1024 opties zijn voor een meervoudige selectie, keuzelijst met invoervak of vervolgkeuzelijstwidget.

  • Er is een bekend probleem waarbij een widgetstatus mogelijk niet goed wist na het drukken op Alles uitvoeren, zelfs na het wissen of verwijderen van de widget in de code. Als dit gebeurt, ziet u een discrepantie tussen de visuele toestand van de widget en de afgedrukte statussen. Het opnieuw uitvoeren van de cellen kan dit probleem omzeilen. Om dit probleem volledig te voorkomen, raadt Databricks het gebruik van ipywidgets aan.

  • U moet de widgetstatus niet rechtstreeks openen in asynchrone contexten, zoals threads, subprocessen of Structured Streaming (foreachBatch), omdat de widgetstatus kan veranderen terwijl de asynchrone code wordt uitgevoerd. Als u de widgetstatus in een asynchrone context wilt openen, geeft u deze door als argument. Als u bijvoorbeeld de volgende code hebt die threads gebruikt:

    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 raadt u aan in plaats daarvan een argument te gebruiken:

    # 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 kunnen in het algemeen geen argumenten doorgeven tussen verschillende talen in een notitieblok. U kunt een widget arg1 maken in een Python-cel en deze gebruiken in een SQL- of Scala-cel als u één cel tegelijk uitvoert. Dit werkt echter niet als u Alles uitvoeren gebruikt of het notebook als taak uitvoert. Enkele tijdelijke oplossingen zijn:

    • Voor notitieblokken die geen talen combineren, kunt u voor elke taal een notitieblok maken en de argumenten doorgeven wanneer u het notebook uitvoert.
    • U kunt de widget openen met behulp van een spark.sql() oproep. Bijvoorbeeld in Python: spark.sql("select getArgument('arg1')").take(1)[0][0].