Ipywidgets használata Databricks-jegyzetfüzetekben

Az ipywidgets olyan vizuális elemek, amelyek lehetővé teszik a felhasználók számára, hogy paraméterértékeket adjanak meg a jegyzetfüzetcellákban. Az ipywidgets használatával interaktívsá teheti a Databricks Python jegyzetfüzeteit.

Az ipywidgets csomag több mint 30 különböző vezérlőt tartalmaz, köztük űrlapvezérlőket, például csúszkákat, szövegdobozokat és jelölőnégyzeteket, valamint elrendezésvezérlőket, például füleket, harmonikákat és rácsokat. Ezekkel az elemekkel grafikus felhasználói felületeket hozhat létre a jegyzetfüzet kódjához való kapcsolódáshoz.

Megjegyzés

Követelmények

  • Az ipywidgetek előzetes verzióban érhetők el a Databricks Runtime 11.0-s verziójában a Databricks Runtime 12.2 LTS-ben, és általában a Databricks Runtime 13.0-s vagy újabb verziójában érhetők el. A Unity Catalog-táblák támogatása a Databricks Runtime 12.2 LTS-ben és újabb verziókban érhető el a Unity Catalog-kompatibilis fürtökön.
  • Az ipywidgets Databricksen való használatához a böngészőnek hozzá kell tudnia férni a databricks-dev-cloudfront.dev.databricks.com tartományhoz.

Alapértelmezés szerint az ipywidgets a 6062-s portot foglalja el. A Databricks Runtime 11.3 LTS és újabb verziók esetén, ha ütközésekbe ütközik külső integrációkkal, például a Datadogtal, a következő Spark-konfigurációval módosíthatja a portot:

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

Példa:

spark.databricks.driver.ipykernel.commChannelPort 1234

A Spark-konfigurációt a fürt létrehozásakor kell beállítani.

Használat

Az alábbi kód létrehoz egy hisztogramot egy csúszkával, amely 3 és 10 közötti értékeket vehet fel. A widget értéke határozza meg a hisztogramban lévő tárolók számát. A csúszka mozgatása közben a hisztogram azonnal frissül. A kipróbálásához tekintse meg az ipywidgets példajegyzetfüzetet .

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)

Az alábbi kód létrehoz egy egész szám csúszkát, amely 0 és 10 közötti értékeket vehet fel. Az alapértelmezett érték 5. A csúszka értékének a kódban való eléréséhez használja a következőt int_slider.value: .

import ipywidgets as widgets

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

Az alábbi kód betölt egy minta adatkeretet a Unity Catalog egyik táblájából. Unity Catalog-táblák támogatása elérhető a Databricks Runtime 12.1 és újabb verziókban, kizárólag Unity Catalog-kompatibilis fürtökön.

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)

Példa jegyzetfüzetre: ipywidgets

Az alábbi jegyzetfüzet néhány példát mutat be az ipywidgets jegyzetfüzetekben való használatára.

ipywidgets példajegyzetfüzet

Jegyzetfüzet beszerzése

Példa jegyzetfüzetre: ipywidgets speciális példa

Az alábbi jegyzetfüzet egy összetettebb példát mutat be, amely ipywidgets használatával hoz létre interaktív térképet.

Haladó példa: térképek ipywidgets-szel

Jegyzetfüzet beszerzése

Ajánlott eljárások ipywidgets és Databricks widgetek használatához

Ha interaktív vezérlőket szeretne hozzáadni Python jegyzetfüzetekhez, a Databricks az ipywidgets használatát javasolja. Más nyelvű jegyzetfüzetek esetén használja a Databricks widgeteket.

A Databricks-vezérlőkkel paramétereket adhat át a jegyzetfüzetek között, és paramétereket adhat át a feladatoknak; az ipywidgetek nem támogatják ezeket a forgatókönyveket.

Mely külső Jupyter-vezérlők támogatottak a Databricksben?

A Databricks minden tőle telhetőt megtesz a harmadik féltől származó widgetekhez, például az ipyleaflethez, a bqplothoz és a VegaFusionhoz. Egyes külső vezérlők azonban nem támogatottak. A Azure Databricks jegyzetfüzetekben tesztelt widgetek listájáért forduljon a Azure Databricks-fiók csapatához.

Korlátozások

További információért tekintse meg a Databricks-jegyzetfüzetek ismert korlátozásait .