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

如何在great_expectations仪表板显示校验失败的完整数据行

Data Docs校验失败时展示完整异常行配置方案

include_unexpected_rows配置后不生效,核心是参数配置位置、结果存储规则、文档渲染规则三个环节没配全,按下面步骤操作即可:

1. 单条Expectation显式开启参数

该参数不是全局生效配置,必须在每一条需要展示完整异常行的Expectation规则内单独添加,配置在Checkpoint、数据源层不会生效,配置示例:

# 以expect_column_max_to_be_between规则为例
expectation_config = ExpectationConfiguration(
    expectation_type="expect_column_max_to_be_between",
    kwargs={
        "column": "你的数值校验列名",
        "max_value": 阈值,
        "include_unexpected_rows": True # 必须放在当前expectation的kwargs参数中
    }
)

版本提示:0.15.x之前的旧版本对该参数存在兼容bug,配置后不会返回完整行数据,建议升级到0.15.40及以上稳定版本操作。

2. 调整校验结果存储规则

默认配置下GE存储校验结果时只会保留异常值、校验统计量这类摘要信息,会自动过滤完整行内容,需要修改项目根目录下的great_expectations.yml,添加全局结果格式配置:

# 在validations_store配置块同级添加以下内容
validation_result_format:
  result_format: COMPLETE
  include_unexpected_rows: True
  return_unexpected_index_query: True

result_format必须设置为COMPLETE,如果设为默认的BASIC/SUMMARY等级,就算开了行保留参数,存储结果时也会把完整行字段删掉。

3. 开启Data Docs的异常行渲染模块

如果前两步配置完,生成的数据文档还是看不到完整行,是因为默认的文档渲染模板默认隐藏了异常行表格,需要做简单的自定义配置:

  • 在项目plugins目录下新建自定义渲染脚本,读取校验结果中的unexpected_rows字段,渲染为包含所有列的HTML表格
  • 在great_expectations.yml的data_docs_sites配置块中注册自定义渲染模块:
data_docs_sites:
  local_site:
    class_name: SiteBuilder
    store_backend:
      class_name: TupleFilesystemStoreBackend
      base_directory: uncommitted/data_docs/local_site/
    custom_render_module: plugins.custom_data_docs.renderer # 替换为你自己的自定义渲染脚本路径

临时排查方案

如果不想调整渲染模板,需要快速定位异常行对应的ID及其他字段内容,可以直接打开项目下uncommitted/validations/路径下对应校验批次的JSON结果文件,搜索unexpected_rows字段,就能拿到所有触发校验失败的完整行数据,不需要通过unexpected_index_list回表关联查询。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:51:20