Megosztás a következőn keresztül:


A Databricks-jegyzetfüzetek ismert korlátozásai

Ez a cikk a Databricks-jegyzetfüzetek ismert korlátozásait ismerteti. További erőforráskorlátok: Erőforráskorlátok.

Jegyzetfüzet méretezése

  • Az egyes jegyzetfüzetcellák bemeneti korlátja 6 MB.
  • Az automatikus mentéshez, importáláshoz, exportáláshoz és klónozáshoz használt korrektúra-pillanatképek maximális jegyzetfüzetmérete 10 MB.
  • Legfeljebb 32 MB-ig manuálisan mentheti a jegyzetfüzeteket.

jegyzetfüzet eredménytáblája

  • A táblaeredmények legfeljebb 10 000 sort vagy 2 MB-ot érhetnek el, attól függően, hogy melyik az alacsonyabb.
  • A feladatfürtök maximális notebookkimeneti mérete 30 MB.
  • A nem táblázatos parancsok eredményeinek korlátja 20 MB.
  • Alapértelmezés szerint a szöveges eredmények legfeljebb 50 000 karaktert adnak vissza. A Databricks Runtime 12.2 LTS és újabb verziója esetén a Spark konfigurációs tulajdonság spark.databricks.driver.maxReplOutputLengthbeállításával növelheti ezt a korlátot.

Jegyzetfüzet hibakeresője

A jegyzetfüzet hibakeresőjének korlátozásai:

SQL Warehouse-jegyzetfüzetek

Az SQL Warehouse-jegyzetfüzetek korlátozásai:

  • SQL-tárházhoz csatlakoztatva a végrehajtási kontextusoknak 8 óra az üresjárati időkorlátja.

ipywidgets

Az ipywidgets korlátozásai:

  • Az ipywidgeteket használó jegyzetfüzeteket egy futó fürthöz kell csatolni.
  • A vezérlőállapotok nem maradnak meg a jegyzetfüzet-munkamenetekben. A vezérlőcellák újrafuttatásával megjelenítheti őket minden alkalommal, amikor a jegyzetfüzetet egy fürthöz csatolja.
  • A jelszó és a vezérlő ipywidgets nem támogatott.
  • A HtmlMath és a Label widgetek LaTeX-kifejezésekkel nem jelennek meg megfelelően. (Például widgets.Label(value=r'$$\frac{x+1}{x-1}$$') nem jelenik meg megfelelően.)
  • Előfordulhat, hogy a widgetek nem jelennek meg megfelelően, ha a jegyzetfüzet sötét módban van, különösen színes widgetek esetén.
  • A widgetkimenetek nem használhatók a jegyzetfüzet irányítópult-nézeteiben.
  • Az ipywidget üzeneteinek maximális hasznos adatmérete 5 MB. Előfordulhat, hogy a képeket vagy nagy szöveges adatokat használó widgetek nem lesznek megfelelően renderelve.

Databricks-vezérlők

A Databricks-vezérlők korlátozásai:

  • Legfeljebb 512 widget hozható létre egy jegyzetfüzetben.

  • A widget neve legfeljebb 1024 karakter hosszúságú lehet.

  • A widgetcímke legfeljebb 2048 karakter hosszúságú lehet.

  • Szöveg widgetbe legfeljebb 2048 karakter adható meg.

  • Többválasztós, kombinált lista vagy legördülő vezérlő esetén legfeljebb 1024 választási lehetőség közül választhat.

  • Van egy ismert probléma, amely miatt előfordulhat, hogy a vezérlő állapota nem kerül megfelelően törlésre Az összes futtatásagomb megnyomása után, még akkor sem, ha a vezérlőt a kódban törlik vagy eltávolítják. Ha ez történik, eltérést fog tapasztalni a widget vizualizációja és a nyomtatott állapotok között. Előfordulhat, hogy a cellák egyenkénti újrafuttatása megkerüli ezt a problémát. A probléma teljes elkerülése érdekében a Databricks az ipywidgets használatát javasolja.

  • Nem szabad közvetlenül aszinkron környezetekben, például szálakban, alfolyamatokban vagy strukturált streamelésben (foreachBatch) hozzáférni a widget állapotához, mivel a widget állapota megváltozhat az aszinkron kód futtatása közben. Ha a widget állapotához aszinkron környezetben kell hozzáférnie, adja át argumentumként. Ha például a következő kóddal rendelkezik, amely szálakat használ:

    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()
    

    A Databricks ehelyett egy argumentum használatát javasolja:

    # 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()
    
  • A widgetek általában nem tudnak argumentumokat átadni a jegyzetfüzet különböző nyelvei között. Létrehozhat egy widgetet arg1 egy Python-cellában, és használhatja egy SQL- vagy Scala-cellában, ha egyszerre egy cellát futtat. Ez azonban nem működik, ha az Összes futtatása vagy a jegyzetfüzet futtatása feladatként fut. Néhány kerülő megoldás a következő:

    • Az olyan jegyzetfüzetek esetében, amelyek nem keverik a nyelveket, létrehozhat egy jegyzetfüzetet az egyes nyelvekhez, és a jegyzetfüzet futtatásakor átadhatja az argumentumokat.
    • A widgetet hívással spark.sql() érheti el. Például a Pythonban: spark.sql("select getArgument('arg1')").take(1)[0][0].