Sdílet prostřednictvím


ipywidgets

ipywidgets jsou vizuální prvky, které uživatelům umožňují zadat hodnoty parametrů v buňkách poznámkového bloku. Pomocí ipywidgetů můžete poznámkové bloky Databricks Pythonu nastavit jako interaktivní.

Balíček ipywidgetů obsahuje více než 30 různých ovládacích prvků, včetně ovládacích prvků formulářů, jako jsou posuvníky, textová pole a zaškrtávací políčka, a také ovládací prvky rozložení, jako jsou tabulátory, akordeony a mřížky. Pomocí těchto prvků můžete vytvořit grafická uživatelská rozhraní pro rozhraní pomocí kódu poznámkového bloku.

Poznámka:

Požadavky

  • Ipywidgets jsou k dispozici ve verzi Preview v Databricks Runtime 11.0 prostřednictvím Databricks Runtime 12.2 LTS a jsou obecně dostupné v Databricks Runtime 13.0 a vyšší. Podpora tabulek katalogu Unity je dostupná v databricks Runtime 12.2 LTS a vyšší v clusterech s podporou katalogu Unity.
  • Pokud chcete v Databricks používat ipywidgety, musí mít váš prohlížeč přístup k databricks-dev-cloudfront.dev.databricks.com doméně.

Ve výchozím nastavení ipywidgets zabírá port 6062. Pokud v Databricks Runtime 11.3 LTS a novějším narazíte na konflikty s integracemi třetích stran, jako je Datadog, můžete port změnit pomocí následující konfigurace Sparku:

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

Příklad:

spark.databricks.driver.ipykernel.commChannelPort 1234

Při vytváření clusteru musí být nastavená konfigurace Sparku.

Využití

Následující kód vytvoří histogram s posuvníkem, který může převzít hodnoty mezi 3 a 10. Hodnota widgetu určuje počet intervalů v histogramu. Když posunete posuvník, histogram se okamžitě aktualizuje. Pokud to chcete vyzkoušet, podívejte se na ukázkový poznámkový blok ipywidgets.

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)

Následující kód vytvoří celočíselnou posuvník, který může převzít hodnoty mezi 0 a 10. Výchozí hodnota je 5. Pokud chcete získat přístup k hodnotě posuvníku v kódu, použijte int_slider.value.

import ipywidgets as widgets

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

Následující kód načte a zobrazí ukázkový datový rámec z tabulky v katalogu Unity. Podpora tabulek katalogu Unity je k dispozici s modulem Databricks Runtime 12.1 a novějším v clusterech s podporou katalogu Unity.

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)

Příklad poznámkového bloku: ipywidgets

Následující poznámkový blok ukazuje některé příklady použití ipywidgetů v poznámkových blocích.

Ukázkový poznámkový blok ipywidgets

Získat poznámkový blok

Příklad poznámkového bloku: rozšířený příklad ipywidgets

Následující poznámkový blok ukazuje složitější příklad použití ipywidgets k vytvoření interaktivní mapy.

Rozšířený příklad: mapy s ipywidgets

Získat poznámkový blok

Osvědčené postupy pro používání widgetů ipywidget a Databricks

Pokud chcete do poznámkových bloků Pythonu přidat interaktivní ovládací prvky, databricks doporučuje používat nástroje ipywidgets. Pro poznámkové bloky v jiných jazycích použijte widgety Databricks.

Pomocí widgetů Databricks můžete předávat parametry mezi poznámkovými bloky a předávat parametry úlohám. Nástroje ipywidget tyto scénáře nepodporují.

Které widgety Jupyter třetích stran jsou v Databricks podporované?

Databricks poskytuje podporu pro widgety třetích stran, jako jsou ipyleaflet, bqplot a VegaFusion. Některé widgety třetích stran se ale nepodporují. Seznam widgetů, které byly testovány v poznámkových blocích Azure Databricks, získáte od týmu účtu Azure Databricks.

Omezení

  • Poznámkový blok, který používá ipywidgets, musí být připojený ke spuštěném clusteru.
  • Stavy widgetů se v relacích poznámkového bloku nezachovají. Aby se buňky widgetu vykreslovaly pokaždé, když připojíte poznámkový blok ke clusteru, musíte je znovu spustit.
  • Protokoly IPywidget pro heslo a řadič nejsou podporovány.
  • Widgety HTMLMath a Label s výrazy LaTeX se nevykreslují správně. (Například widgets.Label(value=r'$$\frac{x+1}{x-1}$$') se nevykresluje správně.)
  • Widgety se nemusí správně vykreslit, pokud je poznámkový blok v tmavém režimu, zejména barevné widgety.
  • Výstupy widgetu nelze použít v zobrazeních řídicího panelu poznámkového bloku.
  • Maximální velikost datové části zprávy pro ipywidget je 5 MB. Widgety, které používají obrázky nebo velká textová data, nemusí být správně vykreslovány.