我将PyDeequ用于数据质量,并且我想检查一组列的唯一性。有一个检查方法hasUniqueness
,但我不知道如何使用它。
我正在努力:
check.hasUniqueness([col1, col2], ????)
但是我们应该在这里使用什么来代替断言函数????
呢?
有没有人试过检查hasUniqueness
列的组合?
我将PyDeequ用于数据质量,并且我想检查一组列的唯一性。有一个检查方法hasUniqueness
,但我不知道如何使用它。
我正在努力:
check.hasUniqueness([col1, col2], ????)
但是我们应该在这里使用什么来代替断言函数????
呢?
有没有人试过检查hasUniqueness
列的组合?
hasUniqueness
接受一个接受 in/float 参数并返回 boolean 的函数:
创建一个约束,该约束在单个或组合的一组键列中声明任何唯一性。唯一性是仅出现一次的列值的唯一值的比例。
这是一个用法示例:
df.show()
#+---+---+
#| a| b|
#+---+---+
#|foo| 1|
#|bar| 0|
#|baz| 1|
#|bar| 0|
#+---+---+
在此数据框中,列的组合a
和b
2 个值恰好出现一次(foo, 1)
,(baz, 1)
因此Uniqueness = 0.5
在这里。让我们使用检查约束来验证它:
from pydeequ.checks import CheckLevel, Check
from pydeequ.verification import VerificationResult, VerificationSuite
result = VerificationSuite(spark).onData(df).addCheck(
Check(spark, CheckLevel.Warning, "test hasUniqueness")
.hasUniqueness(["a", "b"], lambda x: x == 0.5)
).run()
result_df = VerificationResult.checkResultsAsDataFrame(spark, result)
result_df.select("constraint_status").show()
#+-----------------+
#|constraint_status|
#+-----------------+
#| Success|
#+-----------------+