ipywidgets | Databricks on AWS [2022/8/1時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
プレビュー
本機能はパブリックプレビューです。
ipywidgetsはノートブックのセルでパラメータの値を指定できるビジュアル要素です。Databricks Pythonノートブックをインタラクティブなものにするためにipywidgetsを活用することができます。
ipywidgetsパッケージには、スライダー、テキストボックス、チェックボックスなどのコントロールやタブ、アコーディオン、グリッドのようなレイアウトコントロールなど30以上の異なるコントロールが含まれています。これらのエレメントを用いることで、ノートブックコードとのインタフェースとなるGUIを構築することができます。
注意
Databricksウィジェットに関しては、Databricksのwidget(ウィジェット)をご覧ください。Databricksウィジェットやipywidgetsをいつ使用すべきかに関しては、ipywidgetsとDatabricksウィジェットを使用する際のベストプラクティスをご覧ください。
要件
Databricksランタイム11.0以降でipywidgetsを利用できます。
使用法
以下のコードでは、3から10の値を指定できるスライダーを持つヒストグラムを作成します。ウィジェットの値は、ヒストグラムのビンの数を指定します。スライダーを動かすと、即座にヒストグラムが更新されます。試すにはサンプルノートブックを参照ください。
import ipywidgets as widgets
from ipywidgets import interact
# Load a dataset
sparkDF = spark.read.csv("/databricks-datasets/bikeSharing/data-001/day.csv", header="true", inferSchema="true")
# In this code, `(bins=(3, 10)` defines an integer slider widget that allows values between 3 and 10.
@interact(bins=(3, 10))
def plot_histogram(bins):
pdf = sparkDF.toPandas()
pdf.hist(column='temp', bins=bins)
以下のコードは0から10の値を取る整数値のスライダーを作成します。デフォルト値は5です。コードでスライダーの値にアクセスするにはint_slider.value
を使います。
import ipywidgets as widgets
int_slider = widgets.IntSlider(max=10, value=5)
int_slider
サンプルノートブック
ipywidgetsサンプルノートブック
高度なサンプル: ipywidgetsによる地図
ipywidgetsとDatabricksウィジェットを使用する際のベストプラクティス
Pythonノートブックにインタラクティブなコントロールを追加するためには、ipywidgetsを使用することをお勧めします。他の言語のノートブックでは、Databricksのwidgetを使ってください。
ジョブにパラメーターを引き渡す目的や、ノートブック間でパラメーターをやり取りする目的ではDatabricksウィジェットを使用することができます。ipywidgetsではこれらのシナリオをサポートしていません。
制限
- ipywidgetsを使用しているノートブックは稼働中のクラスターにアタッチされている必要があります。
- ノートブックのセッションを越えてウィジェットの状態は保存されません。ノートブックをクラスターにアタッチした際、ウィジェットのセルをレンダリングするためにはウィジェットのセルを再度実行する必要があります。
- 右のipywidgetsはサポートされていません: Password, File Upload, Controller
- HTMLMathとLaTeXを用いたLabelウィジェットは適切にレンダリングされません。(例えば、
widgets.Label(value=r'$$\frac{x+1}{x-1}$$')
は適切にレンダリングされません。) - ノートブックがダークモードの際、特に色付きのウィジェットはノートブックで適切にレンダリングされない場合があります。
- ウィジェットの出力をノートブックのダッシュボードビューで使用することはできません。
- ipywidgetのメッセージペイロードサイズは最大1MBです。画像や大量のテキストデータを使用するウィジェットは適切にレンダリングされない場合があります。