hive中按照一个字段的区间进行统计

本文介绍了一种使用Hive进行区间统计的方法,包括设定区间数量、计算字段最大最小值、确定区间长度及统计各区间记录数量的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. question

给定一个hive表tmp,表中有一个字段result(double型);给定一个区间分类个数m,统计每个区间内的count(*)的数量。

2. answer

在linux终端下,

# step1 设定区间分类个数,此处设置为10
m=10

# step2 求解字段 result 的最大值和最小值
section=`hive -e "
select max(result) as max_num,
       min(result) as min_num
from  tmp
"`
max_num=`echo -e "${section}" | cut -f1`
min_num=`echo -e "${section}" | cut -f2`

# step3 求解区间的长度
len_section=`hive -e "
select (${max_num} - ${min_num}) / ${m}
from   dual
"`

# step4 统计每个区间的个数
hive -e "
select ${min_num} + floor((result - ${min_num}) / ${len_section}) * ${len_section} as section_flag,
       count(*) as num  
from   tmp
"

最后的运行结果

0.0     1197
0.1     1587
0.2     1495
0.3     981
0.4     1074
0.5     947
0.6     424
0.7     173
0.8     114
0.9     59
1.0     2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值