Partager via


ipywidgets

Les ipywidgets sont des éléments visuels qui permettent aux utilisateurs de spécifier des valeurs de paramètre dans les cellules du notebook. Vous pouvez utiliser des ipywidgets pour rendre vos notebooks Python Databricks interactifs.

Le package ipywidgets comprend plus de 30 contrôles différents, notamment des contrôles de formulaire tels que des curseurs, des zones de texte et des cases à cocher, ainsi que des contrôles de disposition tels que des onglets, des accordéons et des grilles. À l’aide de ces éléments, vous pouvez créer des interfaces utilisateur graphiques pour interagir avec votre code de notebook.

Notes

Spécifications

  • les ipywidgets sont disponibles en préversion dans les versions Databricks Runtime 11.0 à Databricks Runtime 12.2 LTS, et sont généralement disponibles dans Databricks Runtime 13.0 et versions ultérieures. La prise en charge des tables Unity Catalog est disponible dans Databricks Runtime 12.2 LTS et versions ultérieures sur les clusters avec Unity Catalog.
  • Pour utiliser ipywidgets sur Databricks, votre navigateur doit être en mesure d’accéder au domaine databricks-dev-cloudfront.dev.databricks.com.

Par défaut, ipywidgets occupe le port 6062. Avec Databricks Runtime 11.3 LTS et versions ultérieures, si vous rencontrez des conflits avec des intégrations tierces telles que Datadog, vous pouvez modifier le port à l’aide de la configuration Spark suivante :

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

Par exemple :

spark.databricks.driver.ipykernel.commChannelPort 1234

La configuration Spark doit être définie lors de la création du cluster.

Usage

Le code suivant crée un histogramme avec un curseur qui peut prendre des valeurs comprises entre 3 et 10. La valeur du widget détermine le nombre de classes dans l’histogramme. Lorsque vous déplacez le curseur, l’histogramme est mis à jour immédiatement. Consultez l’exemple de notebook ipywidgets pour essayer.

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)

Le code suivant crée un curseur entier qui peut prendre des valeurs comprises entre 0 et 10. La valeur par défaut est 5. Pour accéder à la valeur du curseur dans votre code, utilisez int_slider.value.

import ipywidgets as widgets

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

Le code suivant charge et affiche un exemple de trame de données à partir d’une table dans Unity Catalog. La prise en charge des tables Unity Catalog est disponible avec Databricks Runtime 12.1 et versions ultérieures sur les clusters 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)

Exemple de notebook : ipywidgets

Le notebook suivant montre quelques exemples d’utilisation d’ipywidgets dans les notebooks.

exemple de notebook ipywidgets

Obtenir le notebook

Exemple de notebook : exemple avancé utilisant ipywidgets

Le notebook suivant montre un exemple plus complexe utilisant ipywidgets pour créer une carte interactive.

Exemple avancé : cartes avec ipywidgets

Obtenir le notebook

Meilleures pratiques concernant l’utilisation des widgets et des ipywidgets Databricks

Pour ajouter des contrôles interactifs aux notebooks Python, Databricks recommande d’utiliser des ipywidgets. Pour les notebooks dans d’autres langages, utilisez des widgets Databricks.

Vous pouvez utiliser des widgets Databricks pour transmettre des paramètres entre des notebooks et transmettre des paramètres à des travaux ; les ipywidgets ne prennent pas en charge ces scénarios.

Quels widgets Jupyter tiers sont pris en charge dans Databricks ?

Databricks offre une prise en charge optimale des widgets tiers, tels que ipyleaflet, bqplotet VegaFusion. Toutefois, certains widgets tiers ne sont pas pris en charge. Pour obtenir la liste des widgets qui ont été testés dans les notebooks Azure Databricks, contactez l’équipe de votre compte Azure Databricks.

Limites

Pour plus d’informations, consultez limitations connues des notebooks Databricks.