1

我正在使用 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 不满足约束条件!

谁能建议我哪里出错了?

4

1 回答 1

0

我意识到数据中有几个我没有预料到的空值。

将代码更新为

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)
于 2022-01-24T09:48:11.517 回答