我想在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()
加载数据/参数。我不认为有一种方法可以将替代输入馈送到管道的中间(非入口(节点。为此,我只需要分别调用每个节点。