hive percentile和percentile_approx 计算千分数

1、hive 计算千分位数:

percentile函数和percentile_approx函数:

其使用方式为percentile(col, p)、percentile_approx(col, p,B), .返回col列p分位上的值。B用来控制内存消耗的精度。实际col中distinct的值 其中percentile要求输入的字段必须是int类型的,而percentile_approx则是数值类似型的都可以 .

例如percentile_approx(grade, 0.95) 取得排位在倒数第5%的成绩。(使用时会对成绩进行排序,一般可以用于求中位数)

 

   

要求多个分位数时,可以把p换为array(),即

 

   percentile_approx(col,array(0.05,0.5,0.95),9999)   或者  

percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999

 

 

结果为

[0.0,4001.0,4061.0]

explode(percentile_approx(cast(col as double),array(0.05,0.5,0.95),9999))as percentile 结果转换为列

你可能感兴趣的:(hive)