ipywidgets
Los ipywidgets son elementos visuales que permiten a los usuarios especificar valores de parámetros en las celdas del cuaderno. Puede usar ipywidgets para que los cuadernos de Python de Databricks sean interactivos.
El paquete de ipywidgets incluye más de 30 controles diferentes, incluidos controles de formulario como controles deslizantes, cuadros de texto y casillas, así como controles de diseño como pestañas, acordeones y cuadrículas. Con estos elementos, puede crear interfaces gráficas de usuario para interactuar con el código del cuaderno.
Nota:
- Para determinar la versión de ipywidgets que admite el clúster, consulte lasnotas de la versión correspondiente a la versión de Databricks Runtime del clúster.
- Algunos ipywidgets no funcionan en Databricks Runtime 15.0.
- Para obtener información sobre los widgets de Databricks, consulte Widgets de Databricks. Para obtener instrucciones sobre cuándo usar widgets de Databricks o ipywidgets, consulte Procedimientos recomendados para usar ipywidgets y widgets de Databricks.
Requisitos
- ipywidgets están disponibles en versión preliminar en Databricks Runtime 11.0 a Databricks Runtime 12.2 LTS y, además, están disponibles con carácter general en Databricks Runtime 13.0 y versiones posteriores. La compatibilidad con las tablas de Unity Catalog está disponible en Databricks Runtime 12.2 LTS y versiones posteriores en clústeres habilitados para Unity Catalog.
- Para usar ipywidgets en Databricks, el explorador debe poder acceder al dominio
databricks-dev-cloudfront.dev.databricks.com
.
De manera predeterminada, ipywidgets ocupa el puerto 6062. Con Databricks Runtime 11.3 LTS y versiones posteriores, si tiene conflictos con integraciones de terceros como Datadog, puede cambiar el puerto mediante el siguiente configuración de Spark:
spark.databricks.driver.ipykernel.commChannelPort <port-number>
Por ejemplo:
spark.databricks.driver.ipykernel.commChannelPort 1234
La configuración de Spark se debe establecer al crear el clúster.
Uso
El código siguiente crea un histograma con un control deslizante que puede tomar valores entre 3 y 10. El valor del widget determina el número de intervalos del histograma. A medida que mueva el control deslizante, el histograma se actualiza inmediatamente. Consulte el cuaderno de ejemplo ipywidgets para probarlo.
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)
El código siguiente crea un control deslizante entero que puede tomar valores entre 0 y 10. El valor predeterminado es 5. Para acceder al valor del control deslizante en el código, use int_slider.value
.
import ipywidgets as widgets
int_slider = widgets.IntSlider(max=10, value=5)
int_slider
El código siguiente carga y muestra un dataframe de ejemplo de una tabla en el catálogo de Unity. La compatibilidad con las tablas del catálogo de Unity está disponible con Databricks Runtime 12.1 y versiones posteriores en clústeres habilitados para el catálogo de 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)
Ejemplo de Notebook: ipywidgets
En el cuaderno siguiente se muestran algunos ejemplos de uso de ipywidgets en cuadernos.
Cuaderno de ejemplo de ipywidgets
Ejemplo de Notebook: ejemplo avanzado de ipywidgets
En el cuaderno siguiente se muestra un ejemplo más complejo mediante ipywidgets para crear un mapa interactivo.
Ejemplo avanzado: mapas con ipywidgets
Procedimientos recomendados para usar ipywidgets y widgets de Databricks
Para agregar controles interactivos a los cuadernos de Python, Databricks recomienda usar ipywidgets. Para cuadernos de otros lenguajes, use widgets de Databricks.
Puede usar widgets de Databricks para pasar parámetros entre cuadernos y para pasar parámetros a los trabajos; ipywidgets no admite estos escenarios.
¿Qué widgets de Jupyter de terceros se admiten en Databricks?
Databricks proporciona la mejor compatibilidad con widgets de terceros, como ipyleaflet, bqplot y VegaFusion. Sin embargo, no se admiten algunos widgets de terceros. Para ver una lista de los widgets que se han probado en cuadernos de Azure Databricks, póngase en contacto con el equipo de la cuenta de Azure Databricks.
Limitaciones
Para más información, consulte Limitaciones conocidas de los cuadernos de Databricks.