如何像函数一样以交互方式运行kedro管道



我想在jupyter笔记本电脑中使用不同的输入运行kedro管道,所以如下所示:

data = catalog.load('my_dataset')
params = catalog.load('params:my_params')
pipelines['my_pipeline'](data=my_dataset, params=my_params)

有办法做到这一点吗?此外,如果我必须将一些输入馈送到除起始节点(例如第二个节点(之外的其他节点,该如何完成?

关于在jupyter中运行管道,您可以使用一个可用的运行程序或自定义运行程序。SequentialRunner就是一个例子,可以如下使用:


from kedro.runner import SequentialRunner
SequentialRunner().run(pipeline = your_pipeline, catalog = your_catalog)

如果您使用的是kedro jupyter实验室或笔记本电脑,目录是可用的,否则您可以使用DataCatalog((创建它。您可以使用add_feed_dict方法或添加和保存方法将数据集添加到DataCatalog(如果您想覆盖目录中的数据集,请将标志replace设置为True(

import pandas as pd
from kedro.io.data_catalog import DataCatalog
df = pd.DataFrame({'col_1': [0, 1], 'col_2': [1, 2]})
io = DataCatalog()
io.add_feed_dict({"new_dataset": df }, replace=True)

如果要在更改目录中的某些条目后从特定节点启动管道,可以使用管道对象所具有的from_inputs方法。

我们实际上有一种在笔记本环境中使用Kedro的原生方法,请查看此处的文档。

因此,要指定@datajoely的答案:在IPython/Jupyter Notebook中,只需运行

session.run(pipeline_name='my_pipeline', from_inputs=['my_dataset', 'params:my_params'])

无需专门使用catalog.load()加载数据/参数。我不认为有一种方法可以将替代输入馈送到管道的中间(非入口(节点。为此,我只需要分别调用每个节点。

最新更新