寄存器配置加载程序中的TemplatedConfigLoader未替换catalog.yml(kedro)中的模式

2024-04-27 10:32:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用kedro管理一些数据,对于这些数据,我在同一位置有许多数据集CSV。如here所述,我应该能够将此位置的文件路径存储在globals.yml文件中,并在我的目录中使用${…}语法,但我似乎无法使其工作

更具体地说,作为一个简单的示例,我有一个catalog.yml,如下所示:

dataset:
  type: ${csv}
  filepath: ${directory}/Data/dataset.csv

以及我的conf/base文件夹中的globals.yml文件:

csv: "pandas.CSVDataSet"
directory: "file/path/to/directory"

我还更新了项目hooks.py中的register\u config\u loader,如文档中所述:

@hook_impl
    def register_config_loader(self, conf_paths: Iterable[str]) -> ConfigLoader:
        return TemplatedConfigLoader(
            conf_paths,
            globals_pattern="*globals.yml"
        )

如果我是正确的,我认为应该用file/path/to/directory替换目录中的${directory}。但是,当我运行kedro jupyter notebook并尝试运行catalog.load('dataset')时,会出现以下错误:

DataSetError: An exception occurred when parsing config for DataSet `dataset`:
Class `${csv}` not found.

我认为钩子没有正确地替换${…}实例-我如何才能使它工作


Tags: 文件csvto数据path目录configyml