Как запустить узлы в последовательности, как объявлено в конвейере Kedro? - PullRequest
2 голосов
/ 04 ноября 2019

В конвейере Kedro узлы (что-то вроде функций python) объявляются последовательно. В некоторых случаях вход одного узла является выходом предыдущего узла. Однако иногда, когда в командной строке вызывается API запуска Kedro, узлы не запускаются последовательно.

В документации 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,
)

В настоящее время мой последний узел иногда запускается перед моими первыми несколькими узлами.

1 Ответ

2 голосов
/ 04 ноября 2019

Ответ, который я получил от Kedro github:

Конвейер определяет порядок выполнения узла исключительно на основе зависимостей набора данных (входы и выходы узла) на данный момент. Таким образом, единственная возможность диктовать, что узел A должен работать до узла B, - это поместить фиктивный набор данных в качестве вывода узла A и входа узла B.

...