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
- Pour déterminer la version d’ipywidgets prise en charge par votre cluster, reportez-vous aux notes de publication de la version de Databricks Runtime de votre cluster.
- Certaines ipywidgets ne fonctionnent pas dans Databricks Runtime 15.0.
- Pour plus d’informations sur les widgets Databricks, consultez Widgets Databricks. Pour obtenir des instructions sur l’utilisation des widgets ou des ipywidgets Databricks, consultez Meilleures pratiques pour l’utilisation des widgets et des ipywidgets Databricks.
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
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
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.