AggregateMatch - AWS Glue

AggregateMatch

根据给定表达式检查两列聚合的比率。此规则类型适用于多个数据集。对两列聚合进行评估,并通过将第一列聚合的结果除以第二列聚合的结果得出比率。根据提供的表达式检查比率以生成布尔响应。

语法

列聚合

AggregateMatch <AGG_OPERATION> (<OPTIONAL_REFERENCE_ALIAS>.<COL_NAME>)
  • AGG_OPERATION – 用于聚合的操作。目前支持 sumavg

    支持的列类型:字节、十进制、双精度、浮点数、整数、长整数、短整数

  • 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 行。