Dans le pipeline Kedro, les nœuds (quelque chose comme les fonctions python) sont déclarés séquentiellement. Dans certains cas, l'entrée d'un nœud est la sortie du nœud précédent. Cependant, parfois, lorsque kedro run API est appelé dans la ligne de commande, les nœuds ne sont pas exécutés de manière séquentielle.

Dans la documentation de kedro, il est dit que par défaut les nœuds sont exécutés en séquence.

Mon code 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,
)

Actuellement, mon dernier nœud est parfois exécuté avant mes premiers nœuds.

2
Baenka 4 nov. 2019 à 05:38

1 réponse

Meilleure réponse

La réponse que j'ai reçue de Kedro github:

Le pipeline détermine actuellement l'ordre d'exécution des nœuds en fonction exclusivement des dépendances des ensembles de données (entrées et sorties des nœuds). Ainsi, la seule option pour dicter que le nœud A doit s'exécuter avant le nœud B est de mettre un jeu de données factice en sortie du nœud A et en entrée du nœud B.

2
desertnaut 4 nov. 2019 à 11:03