ipywidgets
ipywidgets to elementy wizualne, które umożliwiają użytkownikom określanie wartości parametrów w komórkach notesu. Możesz użyć widżetów ipywidgets, aby twoje notesy Python usługi Databricks mogły być interaktywne.
Pakiet widżetów ipywidgets zawiera ponad 30 różnych kontrolek, w tym kontrolki formularzy, takie jak suwaki, pola tekstowe i pola wyboru, a także kontrolki układu, takie jak kontrolki accordion, widżety Ipwidgets i siatki. Korzystając z tych elementów, można tworzyć graficzne interfejsy użytkownika na potrzeby interakcji z kodem Twojego notesu.
Uwaga
- Aby określić wersję serwerów ipywidget obsługiwaną przez klaster, zapoznaj się z informacjami o wersji dla wersji środowiska Databricks Runtime klastra.
- Niektóre adresy ipywidget nie działają w środowisku Databricks Runtime 15.0.
- Aby uzyskać informacje na temat widżetów usługi Databricks, zobacz Widżety usługi Databricks. Aby uzyskać wskazówki dotyczące używania widżetów usługi Databricks lub widżetów ipywidgets, zobacz Najlepsze rozwiązania dotyczące korzystania z widżetów ipywidgets i Databricks.
Wymagania
- Usługa ipywidgets jest dostępna w wersji zapoznawczej w środowisku Databricks Runtime 11.0 za pośrednictwem środowiska Databricks Runtime 12.2 LTS i są ogólnie dostępne w środowisku Databricks Runtime 13.0 lub nowszym. Obsługa tabel wykazu aparatu Unity jest dostępna w środowisku Databricks Runtime 12.2 LTS i nowszym w klastrach z obsługą wykazu aparatu Unity.
- Aby używać adresów ipywidgets w usłudze Databricks, przeglądarka musi mieć dostęp do
databricks-dev-cloudfront.dev.databricks.com
domeny.
Domyślnie ipywidgets zajmuje port 6062. W przypadku środowiska Databricks Runtime 11.3 LTS lub nowszego, jeśli wystąpią konflikty z integracją innych firm, takimi jak Datadog, możesz zmienić port przy użyciu następującej konfiguracji platformy Spark:
spark.databricks.driver.ipykernel.commChannelPort <port-number>
Na przykład:
spark.databricks.driver.ipykernel.commChannelPort 1234
Po utworzeniu klastra należy ustawić konfigurację platformy Spark.
Użycie
Poniższy kod tworzy histogram z suwakiem, który może przyjmować wartości z zakresu od 3 do 10. Wartość widżetu określa liczbę pojemników na histogramie. Po przeniesieniu suwaka histogram zostanie natychmiast zaktualizowany. Zobacz przykładowy notes ipywidgets, aby wypróbować ten notes .
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)
Poniższy kod tworzy suwak liczby całkowitej, który może przyjmować wartości z zakresu od 0 do 10. Domyślna wartość wynosi 5. Aby uzyskać dostęp do wartości suwaka w kodzie, użyj polecenia int_slider.value
.
import ipywidgets as widgets
int_slider = widgets.IntSlider(max=10, value=5)
int_slider
Poniższy kod ładuje i wyświetla przykładową ramkę danych z tabeli w wykazie aparatu Unity. Obsługa tabel wykazu aparatu Unity jest dostępna w przypadku środowiska Databricks Runtime 12.1 lub nowszego w klastrach z obsługą wykazu aparatu 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)
Przykład notesu: ipywidgets
W poniższym notesie przedstawiono kilka przykładów użycia funkcji ipywidgets w notesach.
przykładowy notes ipywidgets
Przykład notesu: przykład zaawansowany ipywidgets
Poniższy notes przedstawia bardziej złożony przykład tworzenia interaktywnej mapy przy użyciu interfejsów ipywidgets.
Zaawansowany przykład: mapy z adresami ipywidgets
Najlepsze rozwiązania dotyczące używania widżetów ipywidgets i Databricks
Aby dodać interaktywne kontrolki do notesów języka Python, usługa Databricks zaleca używanie poleceń ipywidgets. W przypadku notesów w innych językach użyj widżetów usługi Databricks.
Widżety usługi Databricks umożliwiają przekazywanie parametrów między notesami i przekazywanie parametrów do zadań. Te scenariusze nie obsługują obiektów ipywidgets.
Które widżety Jupyter innych firm są obsługiwane w usłudze Databricks?
Usługa Databricks zapewnia najlepszą obsługę widżetów innych firm, takich jak ipyleaflet, bqplot i VegaFusion. Jednak niektóre widżety innych firm nie są obsługiwane. Aby uzyskać listę widżetów przetestowanych w notesach usługi Azure Databricks, skontaktuj się z zespołem konta usługi Azure Databricks.
Ograniczenia
Aby uzyskać więcej informacji, zobacz Znane ograniczenia dotyczące notesów usługi Databricks.