跳到主要内容

histogram_numeric:数值直方图

速查结论

histogram_numeric(expr, nb) 是 Spark SQL 中用于将数值列划分为等频(非等宽)直方图箱位的聚合函数。

语法

histogram_numeric(expr, nb)

参数说明

参数说明
expr要进行直方图计算的数值列或表达式
nb直方图箱位数量,整数类型

返回值是一个 ARRAY<STRUCT<x, y>>,其中 x 是箱位中心值,y 是该箱位中的元素数量。

示例

> SELECT histogram_numeric(col, 5) FROM VALUES (0), (1), (2), (10) AS tab(col);
[{"x":0,"y":1.0},{"x":1,"y":1.0},{"x":2,"y":1.0},{"x":10,"y":1.0}]

常见报错与避坑指南

  • 箱位数量建议:实践中 20-40 个箱位效果较好。对于偏斜或较小的数据集,需适当增加箱位数量。注意直方图箱位宽度不均匀(等频而非等宽)。
  • 异常值影响:当 nb 值较大时,直方图近似变细,但可能在异常值周围产生人为效应。
  • x 字段的类型传播:返回值中 x 字段的输出类型是从聚合函数中消耗的输入值传播而来的,注意数据类型的一致性问题。

Since: 3.3.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看