You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MLRun 1.2.1特征集数据摄入时Pipeline调用次数翻倍问题咨询

MLRun 1.2.1特征集摄入时Pipeline调用次数翻倍问题

问题现象

使用MLRun 1.2.1版本向特征集摄入数据时,处理函数调用次数是预期的2倍:仅含2条数据的DataFrame,calc方法却被执行了4次。

复现代码

import mlrun
import mlrun.feature_store as fstore

# mlrun: start-code
import math

def calc(x):
    x['fn2']=math.sin(x['fn2'])*100.0
    print('calc')
    return x

# mlrun: end-code

mlrun.set_env_from_file("mlrun-nonprod.env")
project = mlrun.get_or_create_project(project_name, context='./', user_project=False)
feature_derived = fstore.get_feature_set(f"{project_name}/{feature_derivedName}")
...
# dataFrm has only two values
feature_derived.graph.to(name="calc", handler='calc')
fstore.ingest(feature_derived, dataFrm)

执行输出

calc
calc 
calc
calc

问题原因

MLRun 1.2.1的Feature Store在执行fstore.ingest()时,默认包含两个阶段:

  • 预览校验阶段:会完整执行一遍特征处理流程,用来验证数据处理逻辑的正确性、输出格式是否匹配特征集定义,此阶段会调用calc函数处理每条数据。
  • 正式摄入阶段:完成校验后,才会真正将处理后的数据写入特征集,此阶段会再次调用calc函数处理每条数据。

你的DataFrame有2条数据,两个阶段各触发2次函数调用,最终总共出现4次calc输出。

解决方法

如果不需要预览校验,可以在调用fstore.ingest()时添加preview=False参数,这样就只会执行一次正式摄入流程:

fstore.ingest(feature_derived, dataFrm, preview=False)

内容的提问来源于stack exchange,提问作者JIST

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 06:12:06