分配
使用 Distribution 分析器计算列中值的频率分布。分析器根据列数据类型生成不同的输出:
-
数值列:生成分箱直方图。直方图将列的值范围划分为等宽间隔(分箱),并计算每个分箱中的值数量。
-
字符串、日期和其他非数值列:生成值分布,统计每个不同值的出现频率,并按频率降序排列。分析器仅返回频率最高的前 20 个值。
注意
您只能在 DQDL 规则集的 Analyzers 区块中使用 Distribution 分析器。它不能作为规则使用。
语法
Distribution<COL_NAME>Distribution<COL_NAME>with bins =<BIN_COUNT>Distribution<COL_NAME>with bins =<BIN_COUNT>, rebin =<true|false>
-
COL_NAME:要分析的列的名称,或计算数据集中所有列的分布的
AllColumns。支持的列类型:任何列类型
-
分箱(可选):用于数值列直方图的分箱(间隔)数量。默认值为 20。最大值为 20。该参数对非数值列无效。
-
重新分箱(可选):控制自动重新分箱行为。当连续运行时溢出超过阈值,分析器会自动重新分箱。默认值为
true。设置为false,无论溢出频率如何,都可无限期冻结分箱边界。有关更多信息,请参阅 自动重新分箱。
示例:单列的基本分布
以下示例使用默认的 20 个分箱计算 Salary 列的频率分布:
Analyzers = [ Distribution "Salary" ]
示例:自定义分箱计数
以下示例使用 10 个分箱计算 Age 列的直方图:
Analyzers = [ Distribution "Age" with bins = 10 ]
示例:所有列的分布
以下示例计算数据集中所有列的分布。数值列生成包含 20 个分箱的直方图,非数值列生成值分布:
Analyzers = [ Distribution AllColumns ]
示例:与规则和其他分析器相结合
以下示例显示了将规则、标准分析器和 Distribution 分析器组合在一起的规则集:
Rules = [ RowCount > 100, Completeness "Salary" > 0.9 ] Analyzers = [ Mean "Salary", StandardDeviation "Salary", Distribution "Salary" with bins = 15, Distribution "Department" ]
输出格式
运行 Distribution 分析器时,它会生成名为 Distribution 的统计数据。标量统计数据(例如 Mean 或 Sum)会返回单个数值。相比之下,Distribution 统计数据返回的是结构化结果:
-
BinEdges:定义分箱边界(对于数值列)或不同值(对于非数值列)的数组。 -
Count:每个分箱或值的频率数组。
您可以使用 ListDataQualityStatistics API 或 GetDataQualityResult API 检索分布结果。有关数据质量 API 的更多信息,请参阅 AWS Glue API 参考中的数据质量 API。
零值行为
分析器将目标列中含有 NULL 值的行排除在分箱计算之外。
有关冻结分箱边缘、溢出观测值和自动重新分箱的更多信息,请参阅 分布分析器。