Great Expectations创建Checkpoint报错:TypeError(validator参数异常)
解决Great Expectations创建Checkpoint时的TypeError问题
你遇到的TypeError是因为add_or_update_checkpoint()方法并不支持validator这个关键字参数,Great Expectations的Checkpoint创建逻辑需要通过validations参数传入验证器,或者先将验证规则保存为Expectation Suite再关联。
修复方案一:直接通过validations传入验证器
修改创建Checkpoint的代码,将validator放入validations列表的字典中:
import great_expectations as gx context = gx.get_context() validator = context.sources.pandas_default.read_csv( 'sample.txt' ) validator.expect_column_values_to_be_between('age',0,100) # 修正后的Checkpoint创建代码 checkpoint = context.add_or_update_checkpoint( name="my_quickstart_checkpoint", validations=[{"validator": validator}] )
修复方案二:先保存Expectation Suite再关联Checkpoint
如果需要复用验证规则,建议先将Validator中的期望保存为Suite,再通过Suite和数据源请求创建Checkpoint:
import great_expectations as gx context = gx.get_context() validator = context.sources.pandas_default.read_csv( 'sample.txt' ) # 添加期望规则并保存为Expectation Suite validator.expect_column_values_to_be_between('age',0,100) expectation_suite = validator.get_expectation_suite() context.save_expectation_suite(expectation_suite, "age_range_validation_suite") # 基于Suite和数据源请求创建Checkpoint checkpoint = context.add_or_update_checkpoint( name="my_quickstart_checkpoint", batch_request=validator.batch_request, expectation_suite_name="age_range_validation_suite" )
这两种写法都能解决参数错误问题,你可以根据是否需要复用验证规则选择对应方案。
内容的提问来源于stack exchange,提问作者Vandana D
相关产品推荐
相关产品推荐

