4

在 Kedro 管道中,节点(类似于 python 函数)是按顺序声明的。在某些情况下,一个节点的输入是前一个节点的输出。但是,有时在命令行中调用 kedro run API 时,节点不会按顺序运行。

在 kedro 文档中,它说默认情况下节点按顺序运行。

我的 run.py 代码:

def main(
tags: Iterable[str] = None,
env: str = None,
runner: Type[AbstractRunner] = None,
node_names: Iterable[str] = None,
from_nodes: Iterable[str] = None,
to_nodes: Iterable[str] = None,
from_inputs: Iterable[str] = None,
):

project_context = ProjectContext(Path.cwd(), env=env)
project_context.run(
    tags=tags,
    runner=runner,
    node_names=node_names,
    from_nodes=from_nodes,
    to_nodes=to_nodes,
    from_inputs=from_inputs,
)

目前我的最后一个节点有时会在我的前几个节点之前运行。

4

1 回答 1

3

我从 Kedro github 收到的答案:

Pipeline 目前仅根据数据集依赖关系(节点输入和输出)确定节点执行顺序。因此,指示节点 A 应在节点 B 之前运行的唯一选择是将虚拟数据集作为节点 A 的输出和节点 B 的输入。

于 2019-11-04T02:43:57.910 回答