磚小部件

輸入小部件允許您將參數添加到您的筆記本和儀表板。小部件API包含調用創建各種類型的輸入小部件,刪除它們,得到綁定值。

如果您正在運行磚運行時11.0或更高版本,您還可以使用在磚ipywidgets筆記本

磚小部件是最好的:

  • 建立一個筆記本或儀表板可重複使用不同的參數

  • 迅速探索一個查詢的結果用不同的參數

查看部件API的文檔在Scala中,Python,或R,使用以下命令:dbutils.widgets.help ()

磚小部件的類型

有4個類型的部件:

  • 文本:在文本框中輸入一個值。

  • 下拉:從一個列表中選擇一個值提供值。

  • 組合框:結合文本和下拉。從提供的列表中選擇一個值或輸入一個文本框。

  • 多選:從列表中選擇一個或多個值提供值。

小部件下拉工具欄和文本框出現後立即筆記本。

小部件在頭

磚widget API

widget API設計保持一致在Scala中,Python,和r . widget API在SQL略有不同,但相當於其他語言。你管理小部件通過磚公用事業接口。

  • 第一個參數為所有小部件類型的名字。這是您使用的名稱來訪問小部件。

  • 第二個參數是defaultValue;小部件的默認設置。

  • 第三個參數是為所有小部件類型除外文本選擇,一個值列表小部件。這個論點不用於文本小部件類型。

  • 最後一個參數是標簽,一個可選值標簽顯示在文本框小部件或下拉。

小部件隻接受字符串值。

dbutils小部件下拉(“狀態”,“CA”,(“CA”,“他”,“小姐”,“紐約”,”或“,“我們”])dbutils小部件文本(“數據庫”,“beplay体育app下载地址customers_dev”)
創建小部件下拉狀態默認的“CA”選擇選擇*((“CA”),(“他”),(“小姐”),(“紐約”),(”或“),(“我們”))創建小部件文本數據庫默認的“beplay体育app下载地址customers_dev”

磚小部件的示例

為每個方法,看到詳細的API文檔使用dbutils.widgets.help(“<方法名稱>”)。在所有的語言幫助API是相同的。例如:

dbutils小部件幫助(“下拉”)

創建一個簡單的下拉窗口小部件。

dbutils小部件下拉(“狀態”,“CA”,(“CA”,“他”,“小姐”,“紐約”,”或“,“我們”])
創建小部件下拉狀態默認的“CA”選擇選擇*((“CA”),(“他”),(“小姐”),(“紐約”),(”或“),(“我們”))

與小部件從部件麵板。

與小部件

您可以訪問小部件的當前值調用:

dbutils小部件得到(“狀態”)
選擇" ${狀態}"

最後,您可以刪除小部件或筆記本中所有小部件:

dbutils小部件刪除(“狀態”)dbutils小部件removeAll()
刪除小部件狀態

如果您刪除了一個小部件,您不能創建一個小部件位於相同的單元中。您必須創建小部件在另一個細胞。

在火花SQL使用小部件的值

火花SQL訪問小部件值作為字符串可以在查詢中使用。

您可以訪問小部件定義在任何語言從火花SQL執行交互式地筆記本電腦。考慮以下流程:

  1. 創建一個下拉窗口小部件的所有數據庫當前目錄:

    dbutils小部件下拉(“數據庫”,“默認”,(數據庫(0]數據庫火花目錄listDatabases()))
  2. 創建一個文本小部件手動指定一個表名:

    dbutils小部件文本(“表”,”“)
  3. 運行一個SQL查詢數據庫中所有表(從下拉列表中選擇):

    數據庫中顯示表$ {}
  4. 手動輸入一個表名小部件。

  5. 預覽的內容表,而不需要編輯的內容查詢:

    SELECT * FROM ${}數據庫。${表}限製100

請注意

一般來說,您不能使用小部件之間傳遞參數不同的語言在一個筆記本上。您可以創建一個小部件__arg1在Python細胞用在SQL或Scala細胞如果你運行一個細胞。然而,這並不工作如果你使用運行所有或者運行筆記本工作。

解決方法:

  • 對於筆記本電腦不混合的語言,您可以為每個語言創建一個筆記本和傳遞參數時運行筆記本

    • 您可以訪問小部件使用spark.sql ()調用。例如,在Python中:spark.sql(“選擇getArgument (__arg1)”), (1) [0] [0]

請注意

為了躲避美元字符在一個SQL字符串文字,使用美元\。例如,要表示的字符串1000美元,使用“1000美元\”。的美元字符不能逃脫SQL標識符

配置小部件設置

您可以配置小部件的行為,當一個新的值被選中時,小部件麵板是否總是固定的筆記本,筆記本和改變小部件的布局。

  1. 單擊齒輪圖標圖標的右端部件麵板。

  2. 在彈出窗口小部件麵板設置”對話框中,選擇小部件的執行行為。

    小部件設置
    • 運行筆記本:每次選擇一個新值,整個筆記本重新運行。

    • 運行訪問命令:每次選擇一個新值,隻有細胞檢索特定部件的值重新運行。這是默認設置當您創建一個小部件。SQL細胞不運行在這個配置。

    • 什麼都不做:選擇一個新值,每次重新運行。

  3. 銷的小部件的筆記本或上麵的小部件中第一個單元格,點擊銷圖標。設置保存在每個用戶的基礎上。點擊圖釘圖標再次重置為默認的行為。

  4. 如果你有可以管理筆記本電腦的許可,你可以通過點擊配置小部件的布局編輯圖標。每個部件的秩序和大小可以定製。保存或撤銷您的更改,單擊接受並取消圖標

    小部件的布局保存筆記本。如果你改變從缺省配置小部件的布局,新部件不添加按字母順序排列的。

  5. 將小部件的布局重置為默認的順序和大小,點擊齒輪圖標打開小部件麵板設置對話框,然後單擊重新布局。的removeAll ()命令不重置小部件的布局。

例如筆記本電腦

你可以看到一個演示的運行訪問命令設置在以下筆記本工作。的一年小部件創建與設置2014年和用於DataFrame API和SQL命令。

小部件

當你改變的設置一年小部件2007年DataFrame命令重播,但不重新運行SQL命令。

小部件演示筆記本

在新標簽頁打開筆記本

在指示板磚小部件

當您創建一個儀表板從一個筆記本,輸入小部件,所有小部件顯示儀表板的頂部。在演示模式下,每次你更新一個小部件可以點擊的價值更新按鈕來重新運行筆記本和新值更新您的儀表板。

儀表板和小部件

使用磚小部件的%

如果你運行一個筆記本包含小部件,運行指定的筆記本小部件的默認值。你也可以通過值小部件。例如:

%運行/道路/ /筆記本$ X=“10”$ Y=“1”

這個例子運行指定的筆記本和傳遞10到小部件X和1到小部件Y。

限製

有一個已知問題,小部件的狀態可能不正確清楚緊迫運行所有,即使在清算或刪除小部件的代碼。如果發生這種情況,您將會看到一個小部件之間的差異的視覺狀態及其打印狀態。重新運行單獨的細胞可能繞過這個問題。完全避免這個問題,磚建議你使用ipywidgets