我对Databricks来说还很陌生,我正在努力捕获另一台笔记本中一个笔记本的输出。
这是我的代码:
笔记本1
%python
result = dbutils.notebook.run("/01.Mig/SM02. Project /02 Processing Staging/04 User Notebooks/Notebook1", 60)
print("Result: " + result )
if result == 0: dbutils.notebook.exit
else: dbutils.notebook.run("/01.Mig/SM02. Project/02 Processing Staging/04 User Notebooks/Output",60)
笔记本2
%python
resultValue = spark.sql("select count(1) from Notes_Final where record1 like 'GAB%'")
dbutils.notebook.exit(str(resultValue))
从Notebook2传回的结果是DataFrame[count(1): bigint]
。我需要它从Notebook2中的SQL传回计数值,而不是数据类型。
我想念什么?
答案 0 :(得分:0)
您需要将结果值收集回驱动程序,即使如此,您也可能需要将该值作为字符串打印出来,然后再将其作为退出值传递给dbutils。
您的代码按原样实际不执行计数-它只是创建一个DAG来生成结果。在结果数据帧上调用.collect()
后,它将执行DAG并提供计数。然后,您可以将此计数作为笔记本的退出值传递。如我所说,您可能必须通过打印将它作为字符串传递。