Deequ 满足功能不按预期运行

Deequ satisfies function not behaving as expected

我正在使用 pydeequ 运行 对数据进行一些检查,但它的行为与预期不符。我的一列应包含 0 到 1 之间的任何值。数据如下所示

|col 1      |
| 0.5635412 |
| 0.123     |
| 1.0       |


check = Check(spark, CheckLevel.Warning, "DQ Check")
result = VerificationSuite(spark)\
    .onData(df)\
    .addCheck(check
        .satisfies("col1 BETWEEN 0 AND 1", "range check", lambda x: x==1))\
    .run()

result_df = VerificationResult.checkResultsAsDataFrame(spark, result)

结果返回失败消息

值:0.5635412 不符合约束要求!

谁能告诉我哪里出错了?

我发现数据中有几个我没有预料到的空值。

更新代码为

check = Check(spark, CheckLevel.Warning, "DQ Check")
result = VerificationSuite(spark)\
.onData(df)\
.addCheck(check
    .satisfies("col1 BETWEEN 0 AND 1 OR col1 IS NULL", "range check", lambda x: x==1))\
.run()

result_df = VerificationResult.checkResultsAsDataFrame(spark, result)