Great Expectations条件期望contains实现及row_condition报错求助
Great Expectations SparkDFDataset 条件期望问题解决方案
1. 关于row_condition参数报错的说明
你使用的SparkDFDataset类的期望方法不支持row_condition和condition_parser参数——这两个参数是PandasDataset专属的。解决方式是先通过Spark原生的filter方法筛选出目标数据子集,再在子集上执行期望校验。
2. 实现Condition列的匹配与条件期望
场景1:Condition列严格等于"A"时检查Value不为0
# 筛选符合条件的数据集子集 filtered_subset = df.filter(df.Condition == "A") # 在子集上执行期望检查 filtered_subset.expect_column_values_to_not_be_in_set( column='Value', value_set=[0], result_format="SUMMARY" )
场景2:Condition列包含字符串"A"时检查Value不为0
使用Spark的contains方法实现模糊匹配,若需大小写不敏感匹配,可结合lower()/upper()统一字符格式:
# 大小写敏感的包含匹配 filtered_subset = df.filter(df.Condition.contains("A")) # 大小写不敏感的包含匹配(转为小写后匹配) filtered_subset = df.filter(df.Condition.lower().contains("a")) # 执行期望校验 filtered_subset.expect_column_values_to_not_be_in_set( column='Value', value_set=[0], result_format="SUMMARY" )
内容的提问来源于stack exchange,提问作者yuki
相关产品推荐
相关产品推荐

