调用FeatureVector遇MLRunNotFoundError:特征集无离线目标
解决MLRun FeatureVector报错:there are no offline targets for this feature set
这个错误的核心原因是你引用的特征集fs-01、fs-02没有配置离线存储目标,也没完成数据写入——get_offline_features必须从离线存储读取特征数据,没有对应存储自然会抛出异常。
下面是具体的解决步骤:
给特征集配置离线目标并写入数据
在创建特征集时,必须指定离线存储目标(比如Parquet、CSV),并且执行数据写入操作,示例代码:from mlrun.feature_store import FeatureSet, ParquetTarget # 以fs-01为例,定义特征集并添加离线目标 fs1 = FeatureSet("fs-01", entities=["你的实体字段"]) # 设置离线存储路径(支持本地、S3、GCS等) fs1.set_targets(targets=[ParquetTarget(path="./fs-01-offline")]) # 将数据写入特征集,这一步会把数据同步到离线目标 fstore.ingest(fs1, 你的数据源DataFrame)对
fs-02执行同样操作,确保两个特征集都有离线存储的数据。验证特征集的离线目标状态
可以用代码检查特征集是否存在有效离线目标:fs = fstore.get_feature_set("fs-01") # 打印所有离线目标路径 print("离线目标:", [t.path for t in fs.targets if t.is_offline])如果输出为空,说明特征集没有离线存储,需要重新执行数据写入。
重新执行FeatureVector代码
确认两个特征集都有离线数据后,再运行你的原有代码,就能正常获取离线特征数据了。额外提醒
- 如果特征集是在MLRun平台上创建的,要确认对应的数据导入任务已经成功完成,别光创建了特征集没导入数据。
- 离线存储路径要确保MLRun运行环境有读写权限,比如本地路径不能是只读目录,云存储要配置好访问密钥。
内容的提问来源于stack exchange,提问作者XiongChan
相关产品推荐
相关产品推荐

