我用下麵的代碼來創建和閱讀小部件。我指定默認值。
dbutils.widgets。文本(“pname”、“默認”,“parameter_name”)
pname = dbutils.widgets.get (“pname”)
我使用這個小部件參數在某些sql腳本。下麵就是一個例子
%的sql
如果不存在創建數據庫$ {pname} _t;
我執行這個筆記本從ADF。我不是任何值傳遞給該參數,所以它將默認值。
我麵臨的問題是,有時這個小部件價值反映,有時是不反映在sql腳本創建“_t”數據庫。這是發生在我的開發環境。我使用完全相同的代碼在生產環境中,它工作正常。
有時是工作,有時我麵臨這個問題。誰能請幫我確認這個問題嗎?
嗨@Ashwathy P P,磚運行時你用的哪一個?
一個已知的問題是,一個小部件狀態可能不會充分明確後壓運行,即使在清算或刪除小部件的代碼。如果發生這種情況,您將會看到一個小部件的視覺和打印狀態之間的差異。重新運行單獨的細胞可能繞過這個問題。完全避免這個問題,磚建議你使用ipywidgets。
如果您正在運行磚運行時11.0或更高版本,您還可以使用在磚ipywidgets筆記本。
嗨@Kaniz開羅,我試著執行使用運行時9.1 LTS和10.4 LTS筆記本。
問題是,我使用這個sql腳本在python筆記本。我可以能夠閱讀小部件的價值觀,能夠打印小部件使用python值打印語句。我變得像預期的價值。
當我在SQL腳本中使用相同的變量在同一個筆記本,這個值是沒有反映取而代之的是空值。
我改變了我所有的sql腳本spark.sql()語句現在筆記本運行良好。但是我沒有得到,為什麼sql腳本並不在這裏工作。
https://docs.m.eheci.com/notebooks/widgets.html州
一般來說,你不能使用小部件之間傳遞參數不同的語言在一個筆記本上。您可以創建一個小部件__arg1在Python細胞用在SQL或Scala細胞如果你運行一個細胞。然而,這不工作如果你使用筆記本運行或運行作為一個工作。