【问题标题】:How to run a kedro pipeline interactively like a function如何像函数一样以交互方式运行 kedro 管道
【发布时间】:2022-10-25 16:39:53
【问题描述】:

我想在 jupyter notebook 中使用不同的输入运行 kedro 管道,所以是这样的:

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

有没有办法做到这一点?另外,如果我必须将一些输入提供给除起始节点之外的其他节点(例如第二个节点),该怎么做?

【问题讨论】:

    标签: python-3.x jupyter-notebook ipython kedro data-pipeline


    【解决方案1】:

    我们实际上有一种在笔记本环境中使用 Kedro 的原生方式,check out the docs here

    【讨论】:

      【解决方案2】:

      关于在 jupyter 中运行管道,您可以使用可用的运行器之一或自定义运行器。 SequentialRunner 是一个示例,可以按如下方式使用:

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

      如果您使用的是 kedro jupyter 实验室或笔记本,则该目录可用,否则您可以使用 DataCatalog() 创建它。 您可以使用 add_feed_dict 方法或 add 和 save 方法将数据集添加到 DataCatalog(如果要覆盖目录中的数据集,请将标志替换设置为 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)
      
      

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

      【讨论】:

        【解决方案3】:

        所以,要指定@datajoely 的答案:在 IPython / Jupyter Notebook 中运行

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

        无需专门使用catalog.load() 加载数据/参数。 我认为没有办法将替代输入提供给管道的中间(非入口)节点。为此,我将分别调用每个节点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-05
          • 2015-10-10
          • 1970-01-01
          相关资源
          最近更新 更多