微软在https://learn.microsoft.com/en-us/azure/databricks/notebooks/notebook-workflows上的文档说,您可以运行另一个笔记本并通过以下操作传递参数:
notebook1:
result = dbutils.notebook.run("notebook2", 60, {"argument": "data", "argument2": "data2"})
print(f"{result}")
但是它没有说我如何在我的notebook2中获取参数argument
和argument2
.
notebook2:
argument = ??
argument2 = ??
print(f"argument={argument} and argument2={argument2}")
dbutils.notebook.exit("Success")
如何获取notebook2中的get参数
?文档对此给出了答案。为了获得从notebook1
传递的参数,您必须在notebook2
中使用dbuitls.widgets.text()
创建两个文本小部件。现在使用dbuitls.widgets.get()
方法来获取这些参数的值。
您可以尝试使用以下代码:
- Notebook1
result = dbutils.notebook.run("nb2", 60, {"argument": "data", "argument2": "data2"})
print(f"{result}")
- Notebook2
dbutils.widgets.text("argument","argument_default")
argument = dbutils.widgets.get("argument")
dbutils.widgets.text("argument2","argument2_default")
argument2 = dbutils.widgets.get("argument2")
ans = argument+' '+argument2
#print(f"argument={argument} and argument2={argument2}")
dbutils.notebook.exit(ans)
当您执行notebook1以运行notebook2时,notebook2运行成功,其退出值如下所示:
data data2
注意:如果只传递一个值,那么notebook2
中的另一个参数采用dbutils.widgets.text()
中提到的默认值(第二个参数)。