Bagikan melalui


ipywidgets

ipywidgets adalah elemen visual yang memungkinkan pengguna menentukan nilai parameter dalam sel buku catatan. Anda dapat menggunakan ipywidgets untuk membuat notebook Databricks Python Anda interaktif.

Paket ipywidgets mencakup lebih dari 30 kontrol yang berbeda, termasuk kontrol formulir seperti penggeser, kotak teks, dan kotak centang, serta kontrol tata letak seperti tab, akordion, dan kisi. Dengan menggunakan elemen ini, Anda dapat membangun antarmuka pengguna grafis untuk berinteraksi dengan kode notebook Anda.

Catatan

Persyaratan

  • ipywidgets tersedia dalam pratinjau di Databricks Runtime 11.0 hingga Databricks Runtime 12.2 LTS, dan umumnya tersedia di Databricks Runtime 13.0 ke atas. Dukungan untuk tabel Unity Catalog tersedia di Databricks Runtime 12.2 LTS ke atas pada kluster yang mendukung Katalog Unity.
  • Untuk menggunakan ipywidgets di Databricks, browser Anda harus dapat mengakses databricks-dev-cloudfront.dev.databricks.com domain.

Secara default, ipywidgets menempati port 6062. Dengan Databricks Runtime 11.3 LTS ke atas, jika Anda mengalami konflik dengan integrasi pihak ketiga seperti Datadog, Anda dapat mengubah port menggunakan konfigurasi Spark berikut:

spark.databricks.driver.ipykernel.commChannelPort <port-number>

Contohnya:

spark.databricks.driver.ipykernel.commChannelPort 1234

Konfigurasi Spark harus diatur saat kluster dibuat.

Penggunaan

Kode berikut membuat histogram dengan penggeser yang dapat mengambil nilai antara 3 dan 10. Nilai widget menentukan jumlah bin dalam histogram. Saat Anda memindahkan slider, histogram segera diperbarui. Lihat contoh notebook ipywidgets untuk mencobanya.

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)

Kode berikut membuat penggeser bilangan bulat yang dapat mengambil nilai antara 0 dan 10. Nilai defaultnya adalah 5. Untuk mengakses nilai penggeser dalam kode Anda, gunakan int_slider.value.

import ipywidgets as widgets

int_slider = widgets.IntSlider(max=10, value=5)
int_slider

Kode berikut memuat dan menampilkan sampel dataframe dari tabel di Unity Catalog. Dukungan untuk tabel Unity Catalog tersedia dengan Databricks Runtime 12.1 ke atas pada kluster yang mendukung Unity Catalog.

import ipywidgets as widgets

# Create button widget. Clicking this button loads a sampled dataframe from UC table.
button = widgets.Button(description="Load dataframe sample")

# Output widget to display the loaded dataframe
output = widgets.Output()

def load_sample_df(table_name):
  return spark.sql(f"SELECT * FROM {table_name} LIMIT 1000")

def on_button_clicked(_):
    with output:
      output.clear_output()
      df = load_sample_df('<catalog>.<schema>.<table>')
      print(df.toPandas())

# Register the button's callback function to query UC and display results to the output widget
button.on_click(on_button_clicked)

display(button, output)

Contoh buku catatan: ipywidgets

Buku catatan berikut ini memperlihatkan beberapa contoh penggunaan ipywidgets di buku catatan.

buku catatan contoh ipywidgets

Dapatkan buku catatan

Contoh buku catatan: contoh tingkat lanjut ipywidgets

Buku catatan berikut ini memperlihatkan contoh yang lebih kompleks menggunakan ipywidgets untuk membuat peta interaktif.

Contoh tingkat lanjut: peta dengan ipywidgets

Dapatkan buku catatan

Praktik terbaik untuk menggunakan widget ipywidgets dan Databricks

Untuk menambahkan kontrol interaktif ke notebook Python, Databricks merekomendasikan penggunaan ipywidgets. Untuk notebook dalam bahasa lain, gunakan widget Databricks.

Anda dapat menggunakan widget Databricks untuk meneruskan parameter antara notebook dan untuk meneruskan parameter ke pekerjaan; ipywidgets tidak mendukung skenario ini.

Widget pihak ketiga Jupyter manakah yang didukung pada Databricks?

Databricks memberikan dukungan upaya terbaik untuk widget pihak ketiga, seperti ipyleaflet, bqplot, dan VegaFusion. Namun, beberapa widget pihak ketiga tidak didukung. Untuk daftar widget yang telah diuji di notebook Azure Databricks, hubungi tim akun Azure Databricks Anda.

Batasan

  • Notebook yang menggunakan ipywidgets harus dilampirkan ke kluster yang sedang berjalan.
  • Status widget tidak dipertahankan di seluruh sesi notebook. Anda harus menjalankan kembali sel widget untuk merendernya setiap kali Anda melampirkan buku catatan ke kluster.
  • Ipywidgets Kata Sandi dan Pengontrol tidak didukung.
  • Widget HTMLMath dan Label dengan ekspresi LaTeX tidak dirender dengan benar. (Misalnya, widgets.Label(value=r'$$\frac{x+1}{x-1}$$') tidak dirender dengan benar.)
  • Widget mungkin tidak dirender dengan benar jika notebook berada dalam mode gelap, terutama widget berwarna.
  • Output widget tidak dapat digunakan dalam tampilan dasbor buku catatan.
  • Ukuran payload pesan maksimum untuk ipywidget adalah 5 MB. Widget yang menggunakan gambar atau data teks besar mungkin tidak dirender dengan benar.