我第一次使用Bonobo。我能够弄清楚基本的例子。我很想知道如何在 extract 步骤中添加两种不同类型的数据输入?假设我正在从两个不同的站点抓取数据,如何将它们添加到管道中?
由于
答案 0 :(得分:1)
您可以有两个不同的提取步骤(或n个不同的步骤)。
例如:
import bonobo
def extract_1():
yield "x1", "a"
yield "x1", "b"
yield "x1", "c"
def extract_2():
yield "x2", "a"
yield "x2", "b"
yield "x2", "c"
def extract_3():
yield "x3", "a"
yield "x3", "b"
yield "x3", "c"
def normalize(name, value):
yield name.upper(), value
def get_graph(**options):
graph = bonobo.Graph()
graph.add_chain(normalize, print, _input=None)
graph.add_chain(extract_1, _output=normalize)
graph.add_chain(extract_2, _output=normalize)
graph.add_chain(extract_3, _output=normalize)
return graph
if __name__ == "__main__":
with bonobo.parse_args() as options:
bonobo.run(get_graph(**options))
请注意,每个节点都有先进先出的约束条件,但是随着提取器产生数据,“归一化”将以随机顺序获得节点。