我的被调用者笔记本使用结构化流式传输,然后当从调用者笔记本调用被调用者笔记本时。被调用者笔记本不会向调用者笔记本返回任何值。在这里您可以看到导致问题的代码片段。
这是我的被叫笔记本
val query = data.writeStream.outputMode("append")
.format("delta").option("checkpointLocation", checkpointPath)
.option("mergeSchema", "true").trigger(Trigger.Once)
.start(sinkPath)
dbutils.notebook.exit("Return something")
呼叫者笔记本调用此被呼叫者笔记本并返回无,即使被呼叫者笔记本执行到结束,但退出消息不会返回呼叫者笔记本。有人有任何想法或经历类似的问题吗?
这是由Database ricks笔记本中结构化流支持的实现细节引起的“功能”。即使您使用Trigger. once
,也会发生这种情况,并且期望该工作将完成。
如果你需要从笔记本返回一些数据,你可以创建全局临时视图,或者类似的东西。如果你需要返回数据来记录日志,那么最好直接从笔记本日志。其中一个原因是可以返回的数据量有限(我不记得了,可能1kascii字符)