ipywidgets

ipywidgets är visuella element som gör det möjligt för användare att ange parametervärden i notebook-celler. Du kan använda ipywidgets för att göra dina Databricks Python-notebook-filer interaktiva.

Paketet ipywidgets innehåller över 30 olika kontroller, inklusive formulärkontroller som skjutreglage, textrutor och kryssrutor, samt layoutkontroller som flikar, dragspel och rutnät. Med de här elementen kan du skapa grafiska användargränssnitt för att interagera med din notebook-kod.

Kommentar

Krav

  • ipywidgets är tillgängliga i förhandsversionen i Databricks Runtime 11.0 via Databricks Runtime 12.2 LTS och är allmänt tillgängliga i Databricks Runtime 13.0 och senare. Stöd för Unity Catalog-tabeller finns i Databricks Runtime 12.2 LTS och senare i Unity Catalog-aktiverade kluster.
  • Om du vill använda ipywidgets i Databricks måste webbläsaren kunna komma åt domänen databricks-dev-cloudfront.dev.databricks.com .

Som standard upptar ipywidgets port 6062. Med Databricks Runtime 11.3 LTS och senare kan du ändra porten med hjälp av följande Spark-konfiguration om du stöter på konflikter med tredjepartsintegreringar som Datadog:

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

Till exempel:

spark.databricks.driver.ipykernel.commChannelPort 1234

Spark-konfigurationen måste anges när klustret skapas.

Användning

Följande kod skapar ett histogram med ett skjutreglage som kan ta värden mellan 3 och 10. Värdet för widgeten avgör antalet lagerplatser i histogrammet. När du flyttar skjutreglaget uppdateras histogrammet omedelbart. Se ipywidgets-exempelanteckningsboken för att prova det här.

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)

Följande kod skapar ett heltalsreglage som kan ta värden mellan 0 och 10. Standardvärdet är 5. Om du vill komma åt värdet för skjutreglaget i koden använder du int_slider.value.

import ipywidgets as widgets

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

Följande kod läser in och visar en exempeldataram från en tabell i Unity Catalog. Stöd för Unity Catalog-tabeller är tillgängligt med Databricks Runtime 12.1 och senare i Unity Catalog-aktiverade kluster.

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)

Notebook-exempel: ipywidgets

Följande notebook-fil visar några exempel på hur du använder ipywidgets i notebook-filer.

ipywidgets-exempelanteckningsbok

Hämta notebook-fil

Notebook-exempel: ipywidgets avancerat exempel

Följande notebook-fil visar ett mer komplext exempel med ipywidgets för att skapa en interaktiv karta.

Avancerat exempel: mappar med ipywidgets

Hämta notebook-fil

Metodtips för att använda ipywidgets och Databricks-widgetar

För att lägga till interaktiva kontroller i Python-notebook-filer rekommenderar Databricks att du använder ipywidgets. För notebook-filer på andra språk använder du Databricks-widgetar.

Du kan använda Databricks-widgetar för att skicka parametrar mellan notebook-filer och skicka parametrar till jobb. ipywidgets stöder inte dessa scenarier.

Vilka Jupyter-widgetar från tredje part stöds i Databricks?

Databricks ger bästa möjliga stöd för widgetar från tredje part, till exempel ipyleaflet, bqplot och VegaFusion. Vissa widgetar från tredje part stöds dock inte. Om du vill ha en lista över widgetar som har testats i Azure Databricks-notebook-filer kontaktar du ditt Azure Databricks-kontoteam.

Begränsningar

  • En notebook-fil med ipywidgets måste vara ansluten till ett kluster som körs.
  • Widgettillstånd bevaras inte mellan notebook-sessioner. Du måste köra widgetceller på nytt för att återge dem varje gång du kopplar notebook-filen till ett kluster.
  • Ipywidgets för lösenord och kontrollant stöds inte.
  • HTMLMath- och Label-widgetar med LaTeX-uttryck återges inte korrekt. (Renderas till exempel widgets.Label(value=r'$$\frac{x+1}{x-1}$$') inte korrekt.)
  • Widgetar kanske inte återges korrekt om notebook-filen är i mörkt läge, särskilt färgade widgetar.
  • Widgetutdata kan inte användas i instrumentpanelsvyer för notebook-filer.
  • Den maximala meddelandenyttolaststorleken för en ipywidget är 5 MB. Widgetar som använder bilder eller stora textdata kanske inte återges korrekt.