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

tfdv.infer_schema()传入StatsOptions报TypeError问题求助

问题原因

报错的核心是接口入参类型不匹配:

  • tfdv.infer_schema()的第一个位置参数要求传入DatasetFeatureStatisticsList类型的数据集统计结果proto对象
  • 代码中直接将StatsOptions类型的统计配置对象作为入参传给了该接口,不符合参数类型要求。

本质是对TFDV的接口逻辑理解有误:StatsOptions是统计计算阶段的配置项,用来指定特征白名单、统计计算规则等,本身不是统计结果,不能直接传给schema生成接口。

解决方法

按照TFDV的标准流程调整代码顺序,先基于配置生成统计结果,再用统计结果推导schema:

  1. 保留原有StatsOptions配置逻辑,指定需要保留的特征列表
  2. 调用对应数据源的统计生成接口(pandas DataFrame对应tfdv.generate_statistics_from_dataframe,CSV对应tfdv.generate_statistics_from_csv等),将StatsOptions实例传入接口的stats_options参数,拿到合法的统计结果对象
  3. 将统计结果对象传入tfdv.infer_schema()生成schema

修正后的可运行代码如下:

features_remove= {"region","fiscal_week"}
columns= [col for col in df.columns if col not in features_remove]
stat_options= tfdv.StatsOptions(feature_allowlist=columns)

# 传入配置和原始数据,生成符合要求的统计结果
statistics = tfdv.generate_statistics_from_dataframe(
    dataframe=df,
    stats_options=stat_options
)

# 传入统计结果而非配置对象,生成schema
schema= tfdv.infer_schema(statistics)

注意:如果使用其他数据源,替换对应的统计生成接口即可,StatsOptions始终作为统计生成接口的配置参数传入,不要直接传给infer_schema。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:30:45