hive中如何计算中位数
定义:又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分
要求不同商品售价的中位数,以及所有商品售价的中位数,数据初始化如下:
简单列举几个hive中可使用方法
法一:percentile_approx()
函数
输出不同商品售价的中位数结果:
product_name | med_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_name | med_price |
---|---|
商品A | 1.60 |
商品B | 3.5 |
备注:两种方式计算出来的结果出现了差异,这可能是由于法一percentile_approx计算百分数的方式与法二不一致导致
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?