tee操作需要接受一个输入并返回两个复制输出。
我注意到bonobo-etl features Tee nodes,但还不清楚它们是如何使用的。
它们可以用来将运行的图形分成两个方向吗?或者它们旨在用于加载类型的持久性操作,以便在不停止该特定节点中的数据流的情况下使用?
发布于 2019-06-06 19:26:07
bonobo.Tee(f: Callable)操作只是应用一个函数,并将未经修改的流输入传递到流输出中。
尽管名称显然来自unix工具tee (如您所指出的),但它与bonobo版本并不完全相似,一个输出是流输出,另一个输出只是您使用的callable。这个callable可以向流发送数据,也可以不向流发送数据(而向流发送数据目前是hackish的knid )。
例如,如果您使用Tee(print),那么将有传递到output和print的流。
作为另一个更实际的示例,您应该能够执行以下操作:
import bonobo
import queue
output_queue = queue.Queue()
def get_graph():
graph = bonobo.Graph()
graph >> range(100) >> bonobo.Tee(output_queue.put) >> print
return graph
if __name__ == "__main__":
with bonobo.parse_args() as options:
bonobo.run(get_graph())
while True:
try:
print("out:", output_queue.get_nowait())
except queue.Empty:
break希望这能有所帮助。
https://stackoverflow.com/questions/56458061
复制相似问题