是否可以从MLRun中的Parquet和NoSQL目标中删除特定项目?我没有找到相关的方法,我检查了FeatureStore, parquetttarget和NoSQLTarget。
我只看到了从metastore(从DB)中删除整个功能集而不触及特定数据项的能力,参见:
mlrun.feature_store.delete_feature_set(name, project='', tag=None, uid=None, force=False)
但这不是我的情况,我必须只删除特定的数据项(不是来自metastore的信息)。谢谢你的帮助。
BTW:我使用MLRun 1.2.1版本
我没有在MLRun 1.2.1中看到相关的方法,但是您可以使用一些变通方法。
1。关于ParquetTarget
- 这个格式是不可变的
- 但是如果您在parquet中使用分区,那么您可以删除特定的parquet文件。例如,如果你使用按年分区,你可以很容易地在文件系统的特定年份删除文件(通过命令行
rm
),实际上你删除了请求的内容。
2。关于NoSqlTarget
- 这不是不可变的格式,你可以很容易地更新值,但是MLRun 1.2.1没有相关的API来删除项目
- 可以看到每个密钥在文件系统上的持久性(v3io与文件系统兼容)。这意味着您还可以通过删除文件(同样通过命令行
rm
)删除内容(密钥或密钥)。
3。关于RedisTarget
- 它靠近NoSqlTarget(易于更新值)
- 你可以看到redis对删除键的完全支持
命令行:
DEL user
redis-cli KEYS "user*" | xargs redis-cli DEL
python代码:
import redis
r = redis.Redis()
r.delete('test')