首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Databricks部件

Databricks部件
EN

Stack Overflow用户
提问于 2018-06-13 19:07:34
回答 1查看 11.1K关注 0票数 1

我的问题是有关在databricks中传递参数的小部件。我在一个笔记本中使用小部件来设置参数。然后,我从其他笔记本上运行这个初始笔记本。我要把选定的参数拉进去。例如,在笔记本1中我有: dbutils.widgets.dropdown(" start_year ","2011",str(x)表示x in量程(2008,2021),“最早年份”) start_year=dbutils.widgets.get("start_year")打印(“start_year is”+ dbutils.widgets.get("start_year"))

print语句正确地打印用户选择的年份。

在使用%run运行Notebook 1的Notebook 2中,不管选择了什么,它只会打印默认年份,在本例中是2011年。我做错了什么?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 19:14:33

小部件文档中的 (一直在底部):

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

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

也就是说,假设用户必须访问并设置笔记本1中的参数

笔记本1

代码语言:javascript
复制
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

代码语言:javascript
复制
openQuery = open('/dbfs/mnt/tmp/tmpStoreYear.txt', 'rb')
openQuery.read()

此外,还有一个选项使用dbutils.notebook.run (文档)指定小部件参数,但是它仍然作为一个单独的作业运行,并且这些值不会导入到“记事本2”中。

希望这能有所帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50844558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档