微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 PyDeequ 中使用 hasUniqueness 检查?

如何解决如何在 PyDeequ 中使用 hasUniqueness 检查?

我使用 PyDeequ 来保证数据质量,我想检查一组列的唯一性。有一个检查方法 hasUniqueness,但我不知道如何使用它。

我正在尝试:

check.hasUniqueness([col1,col2],????) 

但是我们应该在这里使用断言函数代替 ???? 吗?

有没有人尝试检查 hasUniqueness 的列组合?

解决方法

hasUniqueness 接受一个接受 in/float 参数并返回一个布尔值的函数:

创建一个约束,在单个或 组合键列。唯一性是唯一性的分数 恰好出现一次的列值。

这是一个用法示例:

df.show()
#+---+---+
#|  a|  b|
#+---+---+
#|foo|  1|
#|bar|  0|
#|baz|  1|
#|bar|  0|
#+---+---+

在此数据框中,列 ab 的组合有 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|
#+-----------------+

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。