数据解析:
比如:2010012325表示在2010年01月23日的气温为25度。
需求:现在要求使用hive,计算每一年的最大气温的日期+温度。效果如下:

20010105        29
20070109        99
20080103        37
20100103        17
20120107        32
20130109        29
20140103        17
20150109        99

原始数据如下

2014010114
2014010216
2014010317
2014010410
2014010506
2012010609
2012010732
2012010812
2012010919
2012011023
2001010116
2001010212
2001010310
2001010411
2001010529
2013010619
2013010722
2013010812
2013010929
2013011023
2008010105
2008010216
2008010337
2008010414
2008010516
2007010619
2007010712
2007010812
2007010999
2007011023
2010010114
2010010216
2010010317
2010010410
2010010506
2015010649
2015010722
2015010812
2015010999
2015011023
create table if not exists temperature(
data string
)
row format delimited fields terminated by '\t'
lines terminated by '\n';
load data local inpath './data/temperature' into table temperature;

答案粘贴处:

with a as (select substr(data, 0, 8)  `dt`,substr(data, 9, 10) `temp`from temperature),b as (select dt,temp,rank() over (distribute by substr(dt,0,4) sort by temp desc) `rn`from a)
select *
from b
where b.rn=1;

运行结果

+--------+----+--+
|dt      |temp|rn|
+--------+----+--+
|20010105|29  |1 |
|20070109|99  |1 |
|20080103|37  |1 |
|20100103|17  |1 |
|20120107|32  |1 |
|20130109|29  |1 |
|20140103|17  |1 |
|20150109|99  |1 |
+--------+----+--+

或者如下写法也是可以的

select t.dt,t.temp from(select substr(data,0,8) `dt`,substr(data,9,10) `temp`,rank() over(partition by substr(data,0,4) order by substr(data,9,10) desc)  `rn`  from temperature) t
where t.rn=1;

注意

select substr(data, 0, 8)  `dt` from temperature;
--20140101select substring(data,0,8) from temperature;
--20140101 substring 和substr从效果上看没啥区别
select year(substr(data, 0, 8))  `dt` from temperature;
--null 无法识别
select substr(data,0,4) `dt` from temperature;
-- 2008 只能这样把年份提取出来
select year('20200102');
-- null 无法识别
select year('2020-01-02');
-- 2020 用-分割的字符串这种事可以识别的,其他分隔符的不行

使用hive计算每一年的最大气温的日期+温度相关推荐

  1. Hive计算两个经纬度坐标的直线距离

    -- Hive计算两个经纬度坐标直线距离(单位:公里) -- 公式 -- ASIN( -- SQRT( -- POWER(SIN((lat1-lat2)*ACOS(-1)/360),2) + -- C ...

  2. hive left outer join 子查询临时表_基于历史数据的用户访问次数,每天新老用户,日活,周活,月活的hive计算...

    最近有一个需求,统计每天的新老用户,日活,周活,月活. 我们每天的增量数据会加入到hive历史数据表中,包含用户访问网站的一些信息,字段有很多,包括用户唯一标识guid. 当然了日活,周活,月活就是一 ...

  3. Hive计算引擎大PK,万字长文解析MapRuce、Tez、Spark三大引擎

    Hive从2008年始于FaceBook工程师之手,经过10几年的发展至今保持强大的生命力.截止目前Hive已经更新至3.1.x版本,Hive从最开始的为人诟病的速度慢迅速发展,开始支持更多的计算引擎 ...

  4. 分析函数hive计算均值_hive常用函数及优化

    常用函数 1.数学函数 round(double a,int d ) 四舍五入 floor(double a)对给定数据进行向下舍入最接近的整数.例如floor(21.8),返回21. ceil(do ...

  5. Hive 计算用户留存率(次日,3日,N日)

    文章目录 什么是用户留存率? 创建数据源 计算留存率 计算 N 日的留存率 什么是用户留存率? 用户留存率是指在特定时间段内,用户在使用某个产品或应用程序后,再次使用该产品或应用程序的比例. 它可以帮 ...

  6. hive计算周是一年的第几周

    函数 weekofyear 可以直接计算当前周属于年的第几周 对于跨年周,以当前周所在年天数多的年为准.即一周大于等于4天时间在上一年,则为上一年的最后一周,否则为新年的第一周 查询语句 查询结果 附 ...

  7. 每天新老用户,日活,周活,月活的hive计算

    Hive系列文章 Hive表的基本操作 Hive中的集合数据类型 Hive动态分区详解 hive中orc格式表的数据导入 Java通过jdbc连接hive 通过HiveServer2访问Hive Sp ...

  8. hive计算航班某型号个数_机型分配就是把航班集合按照机型分割成子集。( )...

    [填空题]Fill in the blanks with appropriate prepositions or adverbs, noticing the verbs that go with th ...

  9. hive 计算个人的累计金额占比

    SELECT 会员id,sales, Row_Number() OVER (ORDER BY sales desc ) rank1 ,-按照金额降序给个序号 分组就加 partition by sal ...

最新文章

  1. 利用ISA Server 2006服务器阵列构建高性能、高可靠的企业防火墙
  2. python经典小游戏-又一个python小游戏,叫什么不知道了。。。
  3. 【团队】 冲刺一(9/10)
  4. 怎样把android应用部署到手机上
  5. TabHost 和 FragmentTabHost
  6. LeetCode之Max Consecutive Ones
  7. [蓝桥杯][历届试题]九宫重排-双向bfs和map标记
  8. 隧道凿岩机器人_隧道凿岩机器人的研制
  9. revit找不到附加模块程序集_TensorFlow基础知识——常用模块(一)
  10. State_状态模式_PHP语言描述
  11. 深圳惊现“马云网络有限公司” 网友:你好 我是马云公司CEO
  12. 75-100-020-测试-MySQL 单表优化案例
  13. 理解Android安全机制
  14. 重磅 | 2017年中国大数据企业生态图谱(一)大数据企业融资地图
  15. python实现七种方法去除列表中的重复元素
  16. 【动画消消乐|CSS】083.纯CSS实现卡通齿轮效果
  17. iOS状态栏文字设置成白色
  18. CC00055.hadoop——|HadoopMapReduce.V27|——|Hadoop.v27|源码剖析|DataNode启动流程|
  19. G1D17-研究方向rce45-49不快乐就去敲敲代码
  20. 图神经网络(三):节点分类

热门文章

  1. Educoder 机器学习 SMO进行优化 第1关:SMO高效优化算法
  2. 如何用阿里云服务器建立一个wordpress网站?
  3. 微信小程序 地图功能的实现 map
  4. 进阶03 System、StringBuilder类
  5. python打印tensor_如何在TensorFlow中打印SparseTensor内容?
  6. android中webview使用打开系统相机录像_有没有什么高效使用微信的经验?
  7. php给点击的li设置样式,两种方法为LI列表前3行设置样式
  8. Download PuTTY: latest release (0.75) pscp
  9. linux下文件下载中文,LINUX环境下资源下载中文目录及中文文件名称问题
  10. php 父进程id,PHP pcntl_fork创建进程,复制父进程内存空间上下文