Python Databricks小部件

Python Databricks小部件,python,widget,databricks,Python,Widget,Databricks,我的问题是关于在databrick中传递参数的小部件。我在一个笔记本中使用小部件来设置参数。然后,我从其他笔记本上运行这个初始笔记本。我想把选择的参数拉进去。 例如,在笔记本1中,我有: dbutils.widgets.dropdown(“起始年”、“2011年”[str(x)表示范围内的x(2008年、2021年)],“最早年份”) start\u year=dbutils.widgets.get(“start\u year”) 打印(“起始年是”+dbutils.widgets.get(“起

我的问题是关于在databrick中传递参数的小部件。我在一个笔记本中使用小部件来设置参数。然后,我从其他笔记本上运行这个初始笔记本。我想把选择的参数拉进去。 例如,在笔记本1中,我有: dbutils.widgets.dropdown(“起始年”、“2011年”[str(x)表示范围内的x(2008年、2021年)],“最早年份”) start\u year=dbutils.widgets.get(“start\u year”) 打印(“起始年是”+dbutils.widgets.get(“起始年”))

打印语句正确打印用户选择的任何年份

在使用%run运行Notebook 1的Notebook 2中,无论选择什么,它都只打印默认年份,在本例中为2011年。我做错了什么?谢谢

(一直在底部):

如果运行包含小部件的笔记本,则指定的笔记本将使用小部件的默认值运行。您还可以将值传递给小部件。例如:
%run/path/to/notebook$X=“10”$Y=“1”

您是否考虑过将“notebook 1”设置为以dbfs而不是变量的形式存储值(至少是暂时存储)?然后您可以检索“笔记本1”中设置的任何内容。

i、 e.假设用户必须访问并设置笔记本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.run
() 但是,它仍然作为一个单独的作业运行,并且这些值不会导入到“notebook 2”中

希望这有帮助