"Hello_World" 教程的数据版本控制

Data versioning of "Hello_World" tutorial

我在 "hello_world" 教程的 "catalog.yml" 文件中添加了 "versioned: true"。

example_iris_data:
  type: pandas.CSVDataSet
  filepath: data/01_raw/iris.csv
  versioned: true

然后当我用 "kedro run"到运行的教程,报错如下: "VersionNotFoundError: Did not find any versions for CSVDataSet".

我可以知道对 "iris.csv" 文件进行版本控制的正确方法是什么吗?谢谢!

尝试对下游输出之一进行版本控制。例如,将此条目添加到您的 catalog.yml 和 运行 kedro run

example_train_x:
  type: pandas.CSVDataSet
  filepath: data/02_intermediate/example_iris_data.csv
  versioned: true

您将在 data/02_intermediate 下看到 example_iris.data.csv 目录(不是文件)。 example_iris_data报错的原因是它是起始数据,data/01_raw中已经有iris.csv,所以Kedro无法创建data/01_raw/iris.csv/目录,因为名称与现有目录冲突iris.csv 文件。

希望这对您有所帮助 :)

错误的原因是当Kedro试图加载数据集时,它在data/01_raw/iris.csv/<load_version>/iris.csv中寻找一个文件,当然找不到这样的路径。所以如果你真的想为你的输入数据启用版本控制,你可以像这样移动iris.csv

mv data/01_raw/iris.csv data/01_raw/iris.csv_tmp
mkdir data/01_raw/iris.csv
mv data/01_raw/iris.csv_tmp data/01_raw/iris.csv/<put_some_timestamp_here>/iris.csv

您不需要为任何中间数据执行此操作,因为此路径操作由 Kedro 在保存数据集时自动完成(但不是在加载时)。