data-management - 从其他项目更新 dvc 注册表中的数据
问题描述
我有几个项目正在使用和更新相同的数据源。我最近了解了dvc 的数据注册表,这听起来像是跨这些不同项目(例如刮板、计算管道)对数据进行版本控制的好方法。
我已将所有相关数据放入data-registry
其中,然后将相关文件导入到刮板项目中:
$ poetry run dvc import https://github.com/username/data-registry raw
whereraw
是存储抓取数据的目录。这似乎工作正常,但是当我去构建一个 dvc 管道,将数据输出到一个已经被 dvc 跟踪的文件中时,我得到了一个错误:
$ dvc run -n menu_items -d src/ -o raw/menu_items/restaurant.jsonl scrapy crawl restaurant
ERROR: Paths for outs:
'raw'('raw.dvc')
'raw/menu_items/restaurant.jsonl'('menu_items')
overlap. To avoid unpredictable behaviour, rerun command with non overlapping outs paths.
有人可以帮我理解这里发生了什么吗?使用数据注册表跨项目共享和更新数据的最佳方式是什么?
理想情况下,我希望使用来自刮板项目的新数据更新数据注册表,然后允许其他相关项目在准备好时更新其数据。
解决方案
当您import
(或add
)将某些内容添加到您的项目中时,会创建一个 .dvc 文件,其中列出该内容(在本例中为raw/
目录)作为“输出”。
DVC 不允许 .dvc 文件或 dvc.yaml 阶段之间的重叠输出,这意味着您的“menu_items”阶段不应写入,raw/
因为它已经在raw.dvc
.
您可以为管道输出创建一个单独的目录吗?例如使用processed/menu_items/restaurant.jsonl
推荐阅读
- visual-studio-code - VSCode dynamic processid in launch.json
- html - SVG 图像作为图案 - 全宽 - 保持比例
- php - Symfony FormType at least one radio selected
- html - 日期输入中的不变日期
- hadoop - Hive 分区验证
- c# - 从下到上对 ItemsControl 进行排序
- c# - 将列表序列化/反序列化为 JSON
- excel - 如何更改数组中的数据在工作表中的显示方式
- r - 在R中拆分数字向量
- autodesk-forge - 使用 Javascript 下载 BIM360 Docs 文件