ipywidgets

Gli ipywidgets sono elementi visivi che consentono agli utenti di specificare i valori dei parametri nelle celle del notebook. È possibile usare ipywidgets per rendere interattivi i notebook Python di Databricks.

Il pacchetto ipywidgets include oltre 30 controlli diversi, inclusi controlli di modulo come ad esempio dispositivi di scorrimento, caselle di testo e caselle di controllo, nonché controlli di layout, ad esempio schede, accordion e griglie. Usando questi elementi è possibile creare interfacce utente grafiche per interagire con il codice del notebook.

Nota

Requisiti

  • Gli ipywidget sono disponibili in anteprima in Databricks Runtime 11.0 tramite Databricks Runtime 12.2 LTS e sono disponibili a livello generale in Databricks Runtime 13.0 e versioni successive. Il supporto per le tabelle di Unity Catalog è disponibile in Databricks Runtime 12.2 LTS e versioni successive nei cluster abilitati per Unity Catalog.
  • Per usare ipywidgets in Databricks, il browser deve essere in grado di accedere al dominio databricks-dev-cloudfront.dev.databricks.com.

Per impostazione predefinita, ipywidgets occupa la porta 6062. Con Databricks Runtime 11.3 LTS e versioni successive, se si verificano conflitti con integrazioni di terze parti come Datadog, è possibile modificare la porta usando la configurazione Spark seguente:

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

Ad esempio:

spark.databricks.driver.ipykernel.commChannelPort 1234

La configurazione Spark deve essere impostata al momento della creazione del cluster.

Utilizzo

Il codice seguente crea un istogramma con un dispositivo di scorrimento che può assumere valori compresi tra 3 e 10. Il valore del widget determina il numero di bin nell'istogramma. Quando si sposta il dispositivo di scorrimento, l'istogramma viene aggiornato immediatamente. Vedere il notebook di esempio di ipywidgets per provare a eseguire questa operazione.

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)

Il codice seguente crea un dispositivo di scorrimento integer che può accettare valori compresi tra 0 e 10. Il valore predefinito è 5. Per accedere al valore del dispositivo di scorrimento nel codice, usare int_slider.value.

import ipywidgets as widgets

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

Il codice seguente carica e visualizza un dataframe di esempio da una tabella in Unity Catalog. Il supporto per le tabelle di Unity Catalog è disponibile con Databricks Runtime 12.1 e versioni successive nei cluster abilitati per 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)

Esempio di notebook: ipywidgets

Il notebook seguente illustra alcuni esempi di uso di ipywidget nei notebook.

Notebook di esempio di ipywidgets

Ottenere il notebook

Esempio di notebook: esempio avanzato di ipywidgets

Il notebook seguente illustra un esempio più complesso che usa ipywidgets per creare una mappa interattiva.

Esempio avanzato: mappe con ipywidgets

Ottenere il notebook

Procedure consigliate per l'uso di widget ipywidgets e Databricks

Per aggiungere controlli interattivi ai notebook Python, Databricks consiglia di usare ipywidgets. Per i notebook in altre lingue, usare i widget di Databricks.

È possibile utilizzare i widget di Databricks per passare parametri tra notebook e per passare parametri ai lavori; gli ipywidget non supportano questi scenari.

Quali widget Jupyter di terze parti sono supportati in Databricks?

Databricks offre il supporto ottimale per i widget di terze parti, ad esempio ipyleaflet, bqplot e VegaFusion. Tuttavia, alcuni widget di terze parti non sono supportati. Per un elenco dei widget testati nei notebook di Azure Databricks, contattare il team dell'account di Azure Databricks.

Limiti

Per altre informazioni, vedere Limitazioni note dei notebook di Databricks.