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

如何使用 Amazon Deequ 检查“column1”的值是否在“column2”值的 +-20% 范围内?

如何解决如何使用 Amazon Deequ 检查“column1”的值是否在“column2”值的 +-20% 范围内?

所以,我在 spark 中使用 Amazon Deequ,我有一个数据框“df”,其中两列类型为“Long”或数字。我只是想检查一下:

value(column1) lies between value(column2)-20% and value(column2)+20% 适用于所有行

我不知道该放什么支票:

val verificationResult: VerificationResult = { VerificationSuite()
  .onData(df)
  .addCheck(
    Check(CheckLevel.Error,"Review Check")
      //.funtiontocheckThis()
    )
  .run()

解决方法

Check 有一个方法 satisfies,可以将列表达式作为条件参数。

要检查 column1 是否介于 -20%column2+20%column2 之间,可以使用如下表达式:

|column1 - column2| < 0.20*column2

column1 between 0.80*column2 and 1.20*column2

val verificationResult: VerificationResult = {
  VerificationSuite()
    .onData(df)
    .addCheck(
      Check(CheckLevel.Error,"Review Check")
        .satisfies(
          "abs(column1 - column2) <= 0.20 * column2","value(column1) lies between value(column2)-20% and value(column2)+20%"
        )
    ).run()
}

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