首页 > 解决方案 > 管道在kedro中找不到节点

问题描述

我正在关注管道教程,创建所有需要的文件,启动了 kedro,kedro run --node=preprocessing_data但遇到了这样的错误消息:

ValueError: Pipeline does not contain nodes named ['preprocessing_data'].

如果我在没有参数的情况下运行 kedro node,我会收到

kedro.context.context.KedroContextError: Pipeline contains no nodes

文件内容:

src/project/pipelines/data_engineering/nodes.py
def preprocess_data(data: SparkDataSet) -> None:
    print(data)
    return
src/project/pipelines/data_engineering/pipeline.py
def create_pipeline(**kwargs):
    return Pipeline(
        [
            node(
                func=preprocess_data,
                inputs="data",
                outputs="preprocessed_data",
                name="preprocessing_data",
            ),
        ]
    )
src/project/pipeline.py
def create_pipelines(**kwargs) -> Dict[str, Pipeline]:
    de_pipeline = de.create_pipeline()
    return {
        "de": de_pipeline,
        "__default__": Pipeline([])
    }

标签: pythonkedro

解决方案


我认为您似乎需要在__default__. 例如

def create_pipelines(**kwargs) -> Dict[str, Pipeline]:
    de_pipeline = de.create_pipeline()
    return {
        "de": data_engineering_pipeline,
        "__default__": data_engineering_pipeline
    }

然后kedro run --node=preprocessing_data为我工作。


推荐阅读