使用结构化流查询时,Databricks 笔记本不会向调用者笔记本返回值

时间:2021-02-24 08:50:47

标签: databricks spark-structured-streaming azure-databricks

我的被调用者笔记本使用结构化流,然后当被调用者笔记本被调用者笔记本调用时。被调用者笔记本不会向调用者笔记本返回任何值。 在这里您可以看到产生问题的代码片段。

这是我的被调用者笔记本

val query = data.writeStream.outputMode("append")
     .format("delta").option("checkpointLocation", checkpointPath)
     .option("mergeSchema", "true").trigger(Trigger.Once)
     .start(sinkPath)
    
dbutils.notebook.exit("Return something") 

调用者笔记本调用此被调用者笔记本并返回无,即使被调用者笔记本执行到结束但退出消息不会返回到调用者笔记本。 有没有人有任何想法或遇到类似的问题?

1 个答案:

答案 0 :(得分:0)

这是由 Databricks 笔记本中结构化流支持的实现细节引起的“功能”。即使您使用 Trigger.Once 也会发生这种情况,并期望该作业会完成。

如果您需要从笔记本返回一些数据,您可以创建全局临时视图或类似的东西。如果您需要为记录目的返回数据,那么最好直接从 notebook 中记录。原因之一是可以返回的数据量有限(我不记得了,可能是 1k 个 ascii 字符)