Как запустить узлы в последовательности, указанной в конвейере кедро?

В конвейере 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 ответ

Решение

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

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

Другие вопросы по тегам