如何使用 Amazon Deequ 检查 'column1' 的值是否在 'column2' 的值的 +-20% 范围内?
How to check if values of 'column1' are within +-20% range of values of 'column2' using Amazon Deequ?
所以,我在 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
has a method 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()
}
所以,我在 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
has a method 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()
}