メインコンテンツまでスキップ

Databricksノートブックの既知の制限事項

このページでは、 Databricksノートブックの既知の制限について説明します。 その他のリソース制限については、 「 リソース制限 」を参照してください。

ノートブックのサイズ

  • リビジョン スナップショットの自動保存、手動保存、および複製は、100 MB までのすべてのノートブックでサポートされています。
  • ipynbノートブックのインポートとエクスポートは 100 MB までサポートされています。
  • DBCアーカイブ、HTML、R Markdown、および最大500MBまでのソースノートブックのインポートとエクスポートがサポートされています。
  • 個々のノートブックセルには、6 MB の入力制限があります。

ノートブックのセル出力

  • テーブルの結果は、10,000 行または 2 MB のいずれか小さい方に制限されます。

  • ジョブ クラスターの最大ノートブック出力サイズは 30 MB です。

  • Databricks Runtime 17.0 以降およびサーバレス環境 3:

    • 最大セル出力サイズはデフォルトで 10 MB です。
    • この制限は、Python セルで 1 MB から 20 MB までの任意の値にカスタマイズできます。セル マジック: %set_cell_max_output_size_in_mb <size_in_MB>.この制限は、ノートブック内のすべてのセルに適用されます。
    • セル出力が設定されたサイズ制限を超えると、出力は制限内に収まるように切り捨てられます。切り捨ては、有用な出力をできるだけ多く保持する方法で適用されます。
  • Databricks Runtime 16.4 LTS以下、およびサーバレス環境 2 以下の場合:

    • テキストの結果は最大 50,000 文字を返します。
    • Databricks Runtime 12.2 以降では、Spark 構成プロパティ spark.databricks.driver.maxReplOutputLengthを設定することで、この制限を最大 20 MB まで増やすことができます。
    • セル出力が設定されたサイズ制限を超えると、出力 は完全に破棄 されます。

ノートブック デバッガー

ノートブック デバッガーの制限事項:

  • デバッガは Python でのみ動作します。 Scala や R には対応していません。

  • デバッガーにアクセスするには、ノートブックが次のいずれかのコンピュート リソースに接続されている必要があります。

    • サーバーレスコンピュート
    • Databricks Runtime14.3LTS 以降で アクセス モード が Standard (以前の共有) に設定されたコンピュート
    • Databricks Runtime13.3LTS 以降で アクセス モード が 専用 (以前のシングル ユーザー) に設定されたコンピュート
    • Databricks Runtime13.3LTS 以降で アクセス モード が No Isolation Shared に設定されたコンピュート
  • デバッガーは Python ライブラリへのステップインをサポートしていません。

  • デバッグ・セッションがアクティブな場合、ノートブックで他のコマンドを実行することはできません。

  • デバッガは、 アクセスモード が Standard に設定された サーバレス コンピュート およびクラスターに接続されているサブプロセスでのデバッグをサポートしません。

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 )などの非同期コンテキストでは、ウィジェットの状態に直接アクセスしないでください。非同期コードの実行中にウィジェットの状態が変化する可能性があるためです。非同期コンテキストでウィジェットの状態にアクセスする必要がある場合は、それを引数として渡してください。例えば、スレッドを使用する以下のコードがあるとします。

    Python
    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 では、代わりに引数を使用することをお勧めします。

    Python
    # 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 を作成し、一度に 1 つのセルを実行する場合は SQL または Scala セルで使用できます。ただし、 All を実行したり、ノートブックをジョブとして実行したりする場合は、これは機能しません。 いくつかの回避策は次のとおりです。

    • 言語が混在しないノートブックの場合は、言語ごとにノートブックを作成し、 ノートブックの実行時に引数を渡すことができます。
    • spark.sql()コールを使用することで、ウィジェットにアクセスできます。Pythonの例:spark.sql("select getArgument('arg1')").take(1)[0][0].