AggregateMatch
根据给定表达式检查两列聚合的比率。此规则类型适用于多个数据集。对两列聚合进行评估,并通过将第一列聚合的结果除以第二列聚合的结果得出比率。根据提供的表达式检查比率以生成布尔响应。
语法
列聚合
AggregateMatch
<AGG_OPERATION>
(<OPTIONAL_REFERENCE_ALIAS>
.<COL_NAME>
)
AGG_OPERATION – 用于聚合的操作。目前支持
sum
和avg
。支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数
OPTIONAL_REFERENCE_ALIAS – 如果列来自引用数据集而不是主数据集,则需要提供此参数。如果您在 AWS Glue Data Catalog 中使用此规则,则您的引用别名必须遵循 "<database_name>.<table_name>.<column_name>
支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数
COL_NAME – 要聚合列的名称。
支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数
示例:平均值
"avg(rating)"
示例:总和
"sum(amount)"
示例:引用数据集中各列的平均值
"avg(reference.rating)"
规则
AggregateMatch
<AGG_EXP_1>
<AGG_EXP_2>
<EXPRESSION>
AGG_EXP_1 – 第一列聚合。
支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数
支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数
AGG_EXP_2 – 第二列聚合。
支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数
支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数
EXPRESSION — 针对规则类型响应运行以生成布尔值的表达式。有关更多信息,请参阅 Expressions。
示例:使用 sum 进行聚合匹配
以下示例规则检查 amount
列中值的总和是否完全等于 total_amount
列中值的总和。
AggregateMatch "sum(amount)" "sum(total_amount)" = 1.0
示例:使用 average 进行聚合匹配
以下示例规则检查 ratings
列中值的平均值是否等于 reference
数据集中 ratings
列中值的至少 90% 平均值。在 ETL 或 Data Catalog 体验版中,引用数据集作为附加数据来源提供。
在 AWS Glue ETL 中,您可以使用:
AggregateMatch "avg(ratings)" "avg(reference.ratings)" >= 0.9
在 AWS Glue Data Catalog 中,您可以使用:
AggregateMatch "avg(ratings)" "avg(database_name.tablename.ratings)" >= 0.9
零值行为
在计算聚合方法(总和/均值)时,AggregateMatch
规则将忽略含有零值的行。例如:
+---+-----------+ |id |units | +---+-----------+ |100|0 | |101|null | |102|20 | |103|null | |104|40 | +---+-----------+
列 units
的均值将为 (0 + 20 + 40)/3 = 20。在此计算中不会考虑第 101 行和第 103 行。