使用结构化流查询时,Databricks notebook 没有 return 值给调用者笔记本

Databricks notebook doesn't return value to caller notebook when using Structured Streaming query

我的被调用者笔记本正在使用结构化流,然后当被调用者笔记本被调用者笔记本调用时。被调用者笔记本对调用者笔记本没有 return 任何价值。 在这里您可以看到导致问题的代码片段。

这是我的被叫笔记本

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

调用者笔记本调用此被调用者笔记本和 returns none 即使被调用者笔记本执行到结束但退出消息不会 return 到调用者笔记本。 有没有人有任何想法或经历过类似的问题?

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

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