ipywidgets
ipywidgets 是視覺元素,可讓用戶在筆記本數據格中指定參數值。 您可以使用 ipywidgets 讓 Databricks Python 筆記本成為互動式。
ipywidgets 套件包含超過 30 個不同的控制項,包括滑桿、文字輸入框和核取方塊等表單控制項,以及索引標籤、摺疊式功能表和格線等版面配置控制項。 您可以使用這些元素來建置圖形化使用者介面,以與筆記本程式碼互動。
注意
- 若要判斷叢集支援的ipywidget版本,請參閱 叢集 Databricks Runtime 版本的版本資訊 。
- 某些ipywidget無法在 Databricks Runtime 15.0 中運作。
- 如需 Databricks 小工具的相關信息,請參閱 Databricks 小工具。 如需何時使用 Databricks 小工具或 ipywidgets 的指南,請參閱使用 ipywidgets 和 Databricks 小工具的最佳做法。
需求
- ipywidgets 可在 Databricks Runtime 11.0 到 Databricks Runtime 12.2 LTS 的預覽中取得,且已在 Databricks Runtime 13.0 和更新版本中正式推出。 在已啟用 Unity 目錄的叢集上,Databricks Runtime 12.2 LTS 和更新版本支援 Unity 目錄數據表。
- 若要在 Databricks 上使用 ipywidgets,您的瀏覽器必須能夠存取
databricks-dev-cloudfront.dev.databricks.com
網域。
根據預設,ipywidgets 會佔用埠 6062。 使用 Databricks Runtime 11.3 LTS 和更新版本時,如果您與 Datadog 等第三方整合發生衝突,您可以使用下列 Spark 設定來變更埠:
spark.databricks.driver.ipykernel.commChannelPort <port-number>
例如:
spark.databricks.driver.ipykernel.commChannelPort 1234
建立叢集時,必須設定Spark組態。
使用方式
下列程式代碼會使用滑桿建立直方圖,以接受介於 3 到 10 之間的值。 小工具的值會決定直方圖中的 bin 數目。 當您移動滑桿時,直方圖會立即更新。 請參閱 ipywidgets範例筆記本 來試用。
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)
下列程式代碼會建立整數滑桿,以接受介於 0 到 10 之間的值。 預設值是 5。 若要存取程式代碼中的滑桿值,請使用 int_slider.value
。
import ipywidgets as widgets
int_slider = widgets.IntSlider(max=10, value=5)
int_slider
下列程式代碼會從 Unity 目錄中的數據表載入並顯示範例數據框架。 在已啟用 Unity 目錄的叢集上,Databricks Runtime 12.1 和更新版本可支援 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)
筆記本範例:ipywidgets
下列筆記本示範在筆記本中使用ipywidgets的一些範例。
ipywidgets 範例筆記本
筆記本範例:ipywidgets 進階範例
下列筆記本顯示使用ipywidgets建立互動式地圖的較複雜範例。
進階範例:使用ipywidgets對應
使用ipywidgets和 Databricks 小工具的最佳做法
若要將互動式控件新增至 Python 筆記本,Databricks 建議使用 ipywidgets。 對於其他語言的筆記本,請使用 Databricks 小工具。
您可以使用 Databricks 小工具在 筆記本 之間傳遞參數,並將參數傳遞至作業;ipywidgets 不支持這些案例。
Databricks 支援哪些第三方 Jupyter 小工具?
Databricks 提供第三方小工具的最佳支援,例如 ipyleaflet、bqplot 和 VegaFusion。 不過,不支援某些第三方小工具。 如需已在 Azure Databricks 筆記本中測試的小工具清單,請連絡您的 Azure Databricks 帳戶小組。
限制
如需詳細資訊,請參閱已知限制 Databricks 筆記本。
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: