hive中如何计算中位数

定义:又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分

要求不同商品售价的中位数,以及所有商品售价的中位数,数据初始化如下:

 

简单列举几个hive中可使用方法
法一:percentile_approx()函数

 

输出不同商品售价的中位数结果:

product_namemed_price
商品A 1.55
商品B 3.2

输出所有商品售价的中位数结果:

med_price
2.55

percentile_approx(col, p,B)
参数B控制内存消耗的近似精度,B越大,结果的准确度越高。默认为10,000。
在不分组的情况下,也可一次性求多个分位数,percentile_approx(col,array(0.05,0.5,0.95),9999),结果返回一个分位数列表。

法二:排序后打分位点

 

 

输出不同商品售价的中位数结果:

product_namemed_price
商品A 1.60
商品B 3.5

备注:两种方式计算出来的结果出现了差异,这可能是由于法一percentile_approx计算百分数的方式与法二不一致导致

 

 

 

 

 

 

 

 

 
posted @ 2023-01-12 15:08  DB乐之者  阅读(3043)  评论(0编辑  收藏  举报