我正在使用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)