【Hive】计算分位数
hive中有两个函数可以用来计算分位数:percentile和percentile_approx具体使用方如下:(1)percentile:percentile(col, p)col是要计算的列(值必须为int类型),p的取值为0-1,若为0.5,那么就是2分位数,即中位数。(2)percentile_approx:percentile_approx(col, p)。列为数值类型都可以。perce
·
hive中有两个函数可以用来计算分位数:percentile和percentile_approx
具体使用方如下:
(1)percentile : percentile(col, p)
col是要计算的列(值必须为int类型),p的取值为0-1,若为0.5,那么就是2分位数,即中位数。
-- 计算一个分位数
SELECT percentile(column_name, 0.5) as quartiles
FROM table_name;
-- 计算多个分位数
SELECT percentile(column_name, array(0.25, 0.5, 0.75)) as quartiles
FROM table_name;
(2)percentile_approx : percentile_approx(col, p)。列为数值类型都可以。
percentile_approx还有一种形式percentile_approx(col, p, B),参数B控制内存消耗的近似精度,B越大,结果的精度越高。默认值为10000。当col字段中的distinct值的个数小于B时,结果就为准确的百分位数。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)