hive计算分位数
来源:互联网 发布:网络维护外包服务方案 编辑:程序博客网 时间:2024/05/16 04:34
hive里面倒是有个percentile函数和percentile_approx函数,其使用方式为percentile(col, p)、percentile_approx(col, p),
其中percentile要求输入的字段必须是int类型的,而percentile_approx则是数值类似型的都可以
其实percentile_approx还有一个参数B:percentile_approx(col, p,B),参数B控制内存消耗的近似精度,B越大,结果的准确度越高。默认为10,000。当col字段中的distinct值的个数小于B时,结果为准确的百分位数。
如果我要求多个分位数怎么办呢?,可以把p换为array(
如果不放心的话,就给col再加个转换:
其输出结果长这样:
没法直接用啊!再加个转换:
输出结果就长这样了:
实际操作中,发现有时在计算分位数的时候mapper会卡在0%。
前面说过,如果distinct的值小于B,就会返回精确值,那么个人猜测是因为后台执行的过程是先做了一个select distinct limit B,然后排序得到分位数。如果distinct值特别多的情况下,仅仅是去重就是一个巨大的运算负担,更别说排序了。而当把B从10000调到100的时候很快就能跑出来了
0 0
- hive计算分位数
- python计算分位数
- python计算分位数
- 分位数
- 如何解决hive同时计算多个分位数的问题
- 如何解决hive同时计算多个分位数的问题
- 【数据挖掘】:分位数-分位数图
- 关于k分位数
- 关于分位数
- 四分位数
- k分位数
- (p124)k分位数
- spss四分位数
- 分位数概念
- 分位数(quantile)
- 阶乘位数的计算
- 计算 1 的位数
- 计算整数位数
- 树-堆结构练习——合并果子之哈夫曼树
- androuid 安卓 popupwindow使用(新手必备)
- svn 版本回滚
- Fragment跳转
- reactjs react-router 那些事
- hive计算分位数
- Leetcode 187. Repeated DNA Sequences (Medium) (cpp)
- 查看linux系统是物理机还是虚拟机的方法
- 树-堆结构练习——合并果子之哈夫曼树
- java线程安全总结
- 重写equals()时为什么也得重写hashCode()之深度解读equals方法与hashCode方法渊源
- fsync的性能问题,与fdatasync
- tjut 3029
- CSU 1770 按钮控制彩灯实验