本文主要是介绍Hive常用系统函数-聚合函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于Hive常用的聚合函数
Hive的聚合函数,大多可以group by 组合使用
函数 | 参数格式 | 解释 |
---|---|---|
count | count(*), count(expr),count(distinct expr) | 返回查找的总行数,count(*)返回的行数包括null值;count(expr)和count(distinct expr) 不包括null值 |
sum | sum(col), sum(DISTINCT col) | sum(col)返回组内查询列元素的总和,sum(DISTINCT col)返回组内查询列列的不同值的总和 |
avg | avg(col), avg(DISTINCT col) | sum(col)返回组内查询列元素的平均值,sum(DISTINCT col)返回组内查询列的不同值的平均值 |
min | min(col) | 返回组内查询列的最小值 |
max | max(col) | 返回组内查询列的最大值 |
variance | variance(col) | 返回组内查询列的方差(也可称为总体方差),也可写成var_pop(col) |
var_samp | var_samp(col) | 返回组内查询列方差的无偏估计(方差无偏估计中,因为估计期望损失了一个自由度,估计的分母为n-1,也可称为样本方差) |
stddev_pop | stddev_pop(col) | 返回组内查询列的标准差 |
stddev_samp | stddev_samp(col) | 返回组内查询列标准差的无偏估计方差(无偏估计中,因为估计期望损失了一个自由度,估计的分母为n-1) |
covar_pop | covar_pop(col1, col2) | 返回组内查询列col1和col2的总体协方差 |
covar_samp | covar_samp(col1, col2) | 返回组内查询列col1和col2的样本协方差 |
corr | corr(col1, col2) | 返回组内查询列col1和col2的相关系数 |
percentile | percentile(BIGINT col, p) | 返回组内查询整数列col所在的分位数,p可以为浮点数或数组,且其中元素大小必须在0-1之间。若col不是整数,需使用percentile_approx |
percentile_approx | percentile_approx(DOUBLE col, array(p1[, p2]…) [, B]) | 返回组内查询列col所在的分位数,p可以为浮点数或数组,且其中元素大小必须在0-1之间。B为可选参数,为精度控制参数 |
regr_avgx | regr_avgx(independent, dependent) | 计算自变量的平均值。该函数将任意一对数字类型作为参数,并返回一个double。任何具有null的对都将被忽略。如果应用于空集:返回null。否则,它计算以下内容:avg(dependent) |
regr_avgy | regr_avgy(independent, dependent) | 计算因变量的平均值。该函数将任意一对数字类型作为参数,并返回一个double。任何具有null的对都将被忽略。如果应用于空集:返回null。否则,它计算以下内容:avg(independent) |
regr_count | regr_count(independent, dependent) | 返回independent和dependent都非空的对数 |
regr_intercept | regr_intercept(independent, dependent) | 返回线性回归的截距项 |
regr_r2 | regr_r2(independent, dependent) | 返回线性回归的判决系数(R方,coefficient of determination) |
regr_slope | regr_slope(independent, dependent) | 返回线性回归的斜率系数 |
regr_sxx | regr_sxx(independent, dependent) | 用如下公式计算: ∑ i = 1 n x i x i − ∑ i = 1 n x i ∗ ∑ i = 1 n x i n \frac{\sum_{i=1}^nx_ix_i-\sum_{i=1}^nx_i\ast\sum_{i=1}^nx_i}n n∑i=1nxixi−∑i=1nxi∗∑i=1nxi,并返回结果。等价于regr_count(independent, dependent) * var_pop(dependent) |
regr_sxy | regr_sxy(independent, dependent) | 用如下公式计算: ∑ i = 1 n y i x i − ∑ i = 1 n y i ∗ ∑ i = 1 n x i n \frac{\sum_{i=1}^ny_ix_i-\sum_{i=1}^ny_i\ast\sum_{i=1}^nx_i}n n∑i=1nyixi−∑i=1nyi∗∑i=1nxi,并返回结果。等价于regr_count(independent, dependent) * covar_pop(independent, dependent) |
regr_syy | regr_syy(independent, dependent) | 用如下公式计算: ∑ i = 1 n y i y i − ∑ i = 1 n y i ∗ ∑ i = 1 n y i n \frac{\sum_{i=1}^ny_iy_i-\sum_{i=1}^ny_i\ast\sum_{i=1}^ny_i}n n∑i=1nyiyi−∑i=1nyi∗∑i=1nyi,并返回结果。等价于 regr_count(independent, dependent) * var_pop(independent) |
histogram_numeric | histogram_numeric(col, b) | 用于画直方图。返回一个长度为b的数组,数组中元素为(x,y)形式的键值对,x代表了直方图中该柱形的中心,y代表可其高度。 |
collect_set | collect_set(col) | 返回查询列col去重后的集合,与distinct不同,distinct查询结果为一列数据,collect_set查询后结果为一个集合形式的元素 |
collect_list | collect_list(col) | 返回查询列col的列表 |
ntile | ntile(INTEGER x) | 将有序分区划分为x个称为存储桶的组,并为该分区中的每一行分配存储桶编号。 (此方式存储可以快速计算分位数) |
这篇关于Hive常用系统函数-聚合函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!