共用方式為


Databricks 筆記本的已知限制

本文涵蓋 Databricks 筆記本的已知限制。 如需其他資源限制,請參閱 資源限制

筆記本重設大小

  • 個別筆記本儲存格的輸入限制為 6 MB。
  • 修訂快照集自動儲存、匯入、導出和複製的筆記本大小上限為 10 MB。
  • 您可以手動儲存最多 32 MB 的筆記本。

筆記本結果數據表

  • 數據表結果限製為 10K 個資料列或 2MB,無論哪一個數據列較低。
  • 作業叢集的筆記本輸出大小上限為 30 MB。
  • 非表格式命令的結果有 20 MB 的限制。
  • 根據預設,文字結果最多會傳回 50,000 個字元。 透過 Databricks Runtime 12.2 LTS 和更新版本,您可以藉由設定 Spark 組態屬性 spark.databricks.driver.maxReplOutputLength來增加此限制。

筆記本調試程式

筆記本調試程式的限制:

  • 調試程式只適用於 Python。 它不支援 Scala 或 R。
  • 調試程式無法在共用存取模式叢集上運作。
  • 調試程式不支援逐步執行外部檔案或模組。
  • 當偵錯會話處於作用中狀態時,您無法在筆記本中執行其他命令。

SQL 倉儲筆記本

SQL 倉儲筆記本的限制

  • 當連結至 SQL 倉儲時,執行內容具有 8 小時的閒置逾時。

ipywidgets

ipywidgets 的限制

  • 使用ipywidgets的筆記本必須附加至執行中的叢集。
  • 小工具狀態不會跨筆記本會話保留。 每次將筆記本附加至叢集時,您必須重新執行小工具數據格來轉譯它們。
  • 不支持密碼和控制器 ipywidget。
  • 具有 LaTeX 表達式的 HTMLMath 和 Label 小工具無法正確轉譯。 (例如, widgets.Label(value=r'$$\frac{x+1}{x-1}$$') 無法正確轉譯。
  • 如果筆記本處於深色模式,特別是彩色小工具,小工具可能無法正確轉譯。
  • 小工具輸出無法在筆記本儀錶板檢視中使用。
  • ipywidget 的訊息承載大小上限為 5 MB。 使用影像或大型文字數據的小工具可能無法正確轉譯。

Databricks 小工具

Databricks 小工具的限制:

  • 最多可以在筆記本中建立 512 個小工具。

  • 小工具名稱限制為1024個字元。

  • 小工具標籤限製為 2048 個字元。

  • 最多 2048 個字元可以輸入文字小工具。

  • 多重選取、下拉式方塊或下拉式小工具最多可以有1024個選項。

  • 有一個已知問題:即使清除或移除程序代碼中的小工具,在按下 [全部執行] 之後,小工具狀態可能無法正確清除。 如果發生這種情況,您會看到小工具視覺效果與列印狀態之間的差異。 個別重新執行儲存格可能會略過此問題。 若要完全避免此問題,Databricks 建議使用 ipywidgets

  • 您不應該直接在異步內容中存取小工具狀態,例如線程、子進程或結構化串流(foreachBatch),因為小工具狀態在執行異步程式代碼時可能會變更。 如果您需要存取異步內容中的小工具狀態,請以自變數的形式傳入。 例如,如果您有下列使用線程的程序代碼:

    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 建議改用自變數:

    # 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()
    
  • 小工具通常無法在筆記本內的不同語言之間傳遞自變數。 如果您一次執行一個數據格,您可以在 Python 數據格中建立小工具 arg1 ,並在 SQL 或 Scala 數據格中使用它。 不過,如果您使用 [全部 執行] 或執行筆記本做為作業,則無法運作。 某些因應措施包括:

    • 對於不混合語言的筆記本,您可以為每個語言建立筆記本,並在執行 筆記本時傳遞自變數。
    • 您可以使用呼叫來存取小工具 spark.sql() 。 例如,在 Python 中: spark.sql("select getArgument('arg1')").take(1)[0][0]