histogramQuantile() 函数
histogramQuantile()
函数逼近给定直方图的分位数,该直方图逼近数据集的累积分布。
每个输入表代表一个直方图。直方图表必须有两列——计数列和上限列。
计数是小于或等于上限值的数值的数量。表可以有任意数量的记录,每个记录代表直方图中的一个柱状条。当按上限排序时,计数必须单调递增。如果计数列或上限列中的任何值为 null,则会返回错误。计数列和上限列必须不是组键的一部分。
分位数是使用两个最接近的边界之间的线性插值计算的。如果插值中使用的任何一个边界是无限的,则使用另一个有限边界,并且不执行插值。
输出表
输出表与相应的输入表具有相同的组键。不属于组键的列将被删除。添加一个 float 类型的单值列。值列表示直方图中所需分位数的值。
函数类型签名
(
<-tables: stream[A],
?countColumn: string,
?minValue: float,
?onNonmonotonic: string,
?quantile: float,
?upperBoundColumn: string,
?valueColumn: string,
) => stream[B] where A: Record, B: Record
有关更多信息,请参阅 函数类型签名。
参数
quantile
要计算的分位数。值必须介于 0 和 1 之间。
countColumn
包含直方图柱状条计数的列。默认为 _value
。
upperBoundColumn
包含直方图柱状条上限的列。默认为 le
。
valueColumn
用于存储计算出的分位数的列。默认为 `_value。
minValue
数据集的假定最小值。默认为 0.0
。
onNonmonotonic
描述当按上限排序时计数不是单调递增时的行为。默认为 error
。
支持的值:
- error:产生错误。
- force:强制柱状条计数为单调递增,方法是向每个柱状条添加值,使其等于下一个较小的柱状条。
- drop:当遇到非单调表时,不产生输出。如果分位数低于最低上限,则在
minValue
和最低上限之间执行插值。当minValue
等于负无穷大时,使用最低上限。
tables
输入数据。默认为管道转发数据 (<-
)。
示例
计算直方图的第 90 个分位数
data
|> histogramQuantile(quantile: 0.9)
此页是否对您有帮助?
感谢您的反馈!