如何解决如何使用 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 举报,一经查实,本站将立刻删除。