Delen via


ipywidgets

ipywidgets zijn visuele elementen waarmee gebruikers parameterwaarden kunnen opgeven in notebookcellen. U kunt ipywidgets gebruiken om uw Databricks Python-notebooks interactief te maken.

Het pakket ipywidgets bevat meer dan 30 verschillende besturingselementen, waaronder formulierbesturingselementen zoals schuifregelaars, tekstvakken en selectievakjes, evenals indelingsbesturingselementen zoals tabbladen, accordeons en rasters. Met behulp van deze elementen kunt u grafische gebruikersinterfaces bouwen voor interface met uw notebookcode.

Notitie

Vereisten

  • ipywidgets zijn beschikbaar in preview in Databricks Runtime 11.0 tot en met Databricks Runtime 12.2 LTS en zijn algemeen beschikbaar in Databricks Runtime 13.0 en hoger. Ondersteuning voor Unity Catalog-tabellen is beschikbaar in Databricks Runtime 12.2 LTS en hoger op clusters met Unity Catalog.
  • Als u ipywidgets op Databricks wilt gebruiken, moet uw browser toegang hebben tot het databricks-dev-cloudfront.dev.databricks.com domein.

Ipywidgets neemt standaard poort 6062 in beslag. Als u met Databricks Runtime 11.3 LTS en hoger conflicten hebt met integraties van derden, zoals Datadog, kunt u de poort wijzigen met behulp van de volgende Spark-configuratie:

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

Voorbeeld:

spark.databricks.driver.ipykernel.commChannelPort 1234

De Spark-configuratie moet worden ingesteld wanneer het cluster wordt gemaakt.

Gebruik

Met de volgende code wordt een histogram gemaakt met een schuifregelaar die waarden tussen 3 en 10 kan overnemen. De waarde van de widget bepaalt het aantal bins in het histogram. Terwijl u de schuifregelaar verplaatst, wordt het histogram onmiddellijk bijgewerkt. Zie het voorbeeldnotebook ipywidgets om dit uit te proberen.

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)

Met de volgende code wordt een schuifregelaar voor gehele getallen gemaakt die waarden tussen 0 en 10 kan aannemen. De standaardwaarde is 5. Als u de waarde van de schuifregelaar in uw code wilt openen, gebruikt u int_slider.value.

import ipywidgets as widgets

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

Met de volgende code wordt een voorbeeldgegevensframe uit een tabel in Unity Catalog geladen en weergegeven. Ondersteuning voor Unity Catalog-tabellen is beschikbaar met Databricks Runtime 12.1 en hoger op clusters met 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)

Notebook-voorbeeld: ipywidgets

In het volgende notebook ziet u enkele voorbeelden van het gebruik van ipywidgets in notebooks.

voorbeeldnotebook ipywidgets

Notebook downloaden

Notebook-voorbeeld: geavanceerd voorbeeld ipywidgets

In het volgende notebook ziet u een complexer voorbeeld met behulp van ipywidgets om een interactieve kaart te maken.

Geavanceerd voorbeeld: kaarten met ipywidgets

Notebook downloaden

Aanbevolen procedures voor het gebruik van ipywidgets en Databricks-widgets

Databricks raadt het gebruik van ipywidgets aan om interactieve besturingselementen toe te voegen aan Python-notebooks. Gebruik Databricks-widgets voor notebooks in andere talen.

U kunt Databricks-widgets gebruiken om parameters tussen notebooks door te geven en parameters door te geven aan taken. Ipywidgets bieden geen ondersteuning voor deze scenario's.

Welke Jupyter-widgets van derden worden ondersteund in Databricks?

Databricks biedt best effort-ondersteuning voor widgets van derden, zoals ipyleaflet, bqplot en VegaFus. Sommige widgets van derden worden echter niet ondersteund. Neem contact op met uw Azure Databricks-accountteam voor een lijst met widgets die zijn getest in Azure Databricks-notebooks.

Beperkingen

  • Een notebook met ipywidgets moet worden gekoppeld aan een actief cluster.
  • Widgetstatussen blijven niet behouden in notebooksessies. U moet widgetcellen opnieuw uitvoeren om ze telkens weer te geven wanneer u het notebook aan een cluster koppelt.
  • Het wachtwoord en de controller ipywidgets worden niet ondersteund.
  • HTMLMath- en Labelwidgets met LaTeX-expressies worden niet correct weergegeven. (Wordt bijvoorbeeld widgets.Label(value=r'$$\frac{x+1}{x-1}$$') niet correct weergegeven.)
  • Widgets worden mogelijk niet goed weergegeven als het notitieblok zich in de donkere modus bevindt, met name gekleurde widgets.
  • Widgetuitvoer kan niet worden gebruikt in dashboardweergaven van notitieblok.
  • De maximale grootte van de nettolading van berichten voor een ipywidget is 5 MB. Widgets die gebruikmaken van afbeeldingen of grote tekstgegevens, worden mogelijk niet goed weergegeven.