簡體   English   中英

數據塊小部件

[英]Databricks widgets

我的問題是關於在數據塊中傳遞參數的小部件。 我在一個筆記本中使用小部件來設置參數。 然后,我從其他筆記本運行此初始筆記本。 我希望輸入選定的參數。例如,在筆記本1中,我具有:dbutils.widgets.dropdown(“ start_year”,“ 2011”,[范圍(2008,2021)中x的str(x)],“最早年份“)start_year = dbutils.widgets.get(” start_year“)print(” start_year是“ + dbutils.widgets.get(” start_year“))

打印語句可以正確打印用戶選擇的年份。

在使用%run運行Notebook 1的Notebook 2中,無論選擇什么,它都只會打印默認年份,在這種情況下為2011。 我究竟做錯了什么? 謝謝!

從小部件文檔 (始終在底部):

如果您運行包含小部件的筆記本,則使用小部件的默認值運行指定的筆記本。 您還可以將值傳遞給小部件。 例如: %run /path/to/notebook $X="10" $Y="1"

您是否考慮過將“ notebook 1”設置為至少暫時將值存儲在dbfs中而不是變量中? 然后,您可以檢索在“筆記本1”中設置的任何內容。

即假設用戶必須訪問並在筆記本1中設置參數

筆記本1

start_year=dbutils.widgets.get("start_year") 
myTmpTxt = "The start_year is " + dbutils.widgets.get("start_year")
print(myTmpTxt)
with open('/dbfs/mnt/tmp/tmpStoreYear.txt', 'w') as savedYear:
  savedYear.write(myTmpTxt)

筆記本2

openQuery = open('/dbfs/mnt/tmp/tmpStoreYear.txt', 'rb')
openQuery.read()

另外,還有一個選項使用dbutils.notebook.rundocs )指定窗口小部件參數。但是,它仍然作為單獨的作業運行,並且值不會導入到“ notebook 2”中

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM