使用Python在笔记本之间传输Azure Databricks参数



微软在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中获取参数argumentargument2.

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()中提到的默认值(第二个参数)。

最新更新