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
- Raadpleeg de releaseopmerkingen voor de Databricks Runtime-versie van uw cluster om te bepalen welke versie van ipywidgets uw cluster ondersteunt.
- Sommige ipywidgets werken niet in Databricks Runtime 15.0.
- Zie Databricks-widgets voor meer informatie over Databricks-widgets. Zie Best practices voor het gebruik van ipywidgets en Databricks-widgets voor richtlijnen voor wanneer je Databricks-widgets of ipywidgets moet gebruiken.
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-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
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
Zie Bekende beperkingen voor Databricks-notebooks voor meer informatie.