如何修改Great Expectations DataDoc HTML报告的默认配置
问题描述
Great Expectations支持通过DataDocs生成HTML报告,如下示例所示:
我想要修改报告头部的以下默认值,见下图:
该报告通过如下代码生成:
validation_results_stg = ge_stg_update.validate(expectation_suite='stg_expectations.html', only_return_failures=False)
我判断可以修改这些默认值,因为运行validatation_results_stg代码可以得到如下输出:
{ "evaluation_parameters": {}, "meta": { "great_expectations_version": "0.13.38", "expectation_suite_name": "default", "run_id": { "run_time": "2021-11-18T14:59:49.831733+00:00", "run_name": null }, "batch_kwargs": { "ge_batch_id": "2c157d12-4880-11ec-8b5e-000d3ad66fea" }, "batch_markers": {}, "batch_parameters": {}, "validation_time": "20211118T145949.831530Z", "expectation_suite_meta": { "great_expectations_version": "0.13.38" } }, "results": [ { "result": { "element_count": 14539, "missing_count": 0, "missing_percent": 0.0, "unexpected_count": 0, "unexpected_percent": 0.0, "unexpected_percent_total": 0.0, "unexpected_percent_nonmissing": 0.0, "partial_unexpected_list": [] }, "exception_info": { "raised_exception": false, "exception_message": null, "exception_traceback": null }, "meta": {}, "success": true, "expectation_config": { "kwargs": { "column": "SERVICE", "value_set": [ "CMC", "Divorce", "Probate", "SSCS" ] }, "expectation_type": "expect_column_values_to_be_in_set", "meta": {}, "ge_cloud_id": null } }, { "result": { "observed_value": 14539 }, "exception_info": { "raised_exception": false, "exception_message": null, "exception_traceback": null }, "meta": {}, "success": true, "expectation_config": { "kwargs": { "value": 14539 }, "expectation_type": "expect_table_row_count_to_equal", "meta": {}, "ge_cloud_id": null } } ], "success": true, "statistics": { "evaluated_expectations": 2, "successful_expectations": 2, "unsuccessful_expectations": 0, "success_percent": 100.0 } }
可以看到输出中加载了默认配置,例如"expectation_suite_name": "default",请问如何将这些默认值修改为自定义内容?
解决方法
你可以通过两种方式修改报告头部的默认展示值:
1. 调用validate方法时直接传参覆盖(推荐)
Great Expectations的validate方法原生支持传入自定义参数替换默认值,注意原代码中expectation_suite参数填html后缀是错误写法,该参数应传入期望集的命名,修改后代码如下:
from great_expectations.core import RunIdentifier from datetime import datetime # 自定义配置项 custom_suite_name = "STG层数据校验规则集" custom_run_name = "2024年Q3数据质量巡检" custom_run_time = datetime.utcnow() validation_results_stg = ge_stg_update.validate( expectation_suite='stg_expectations', # 替换为你实际的期望集名称 only_return_failures=False, run_id=RunIdentifier( run_name=custom_run_name, run_time=custom_run_time ), expectation_suite_name=custom_suite_name, # 还可以在batch_kwargs中新增自定义展示字段 batch_kwargs={ "批次标识": "20241001_STG同步数据", "负责部门": "数据质量组" } )
2. 手动修改校验结果的meta字段
如果已经生成了校验结果,也可以直接修改返回字典的对应字段后再生成DataDocs:
# 修改内置默认字段 validation_results_stg["meta"]["expectation_suite_name"] = "自定义期望集名称" validation_results_stg["meta"]["run_id"]["run_name"] = "自定义运行任务名" # 新增自定义头部展示字段 validation_results_stg["meta"]["业务线"] = "政务服务线"
修改完成后再调用DataDocs构建方法,生成的报告就会展示你自定义的内容。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

