Hive
文章平均质量分 79
DM_Source
认知革命
展开
-
【开窗】求连续天数
问题描述:一张表:student_schedule(学生课程表)字段comment:学生ID,课程ID,完成时间问题:学生在一天内完成一节课,当前天记录为完成学习,现计算连续学习天数————————————————————————————————————————————————————————————————————————思路:连续学习,使用排序和完成时间做对比———————————————————————————————————————————————————————————原创 2021-04-25 18:39:14 · 246 阅读 · 1 评论 -
【开窗】取最近直播标题和直播时长
问题描述:一张表:test_over(uid, title, stime, etime, date)字段comment:主播ID,直播间标题,开始直播时间戳,结束直播时间戳,日期分区问题:求每个主播当天最近一次直播记录和全天总的直播时长要求: shuffle次数最少思路:粒度是主播;时间周期是每天;需求是两个,第一,当天最近一次直播记录,第二全天总的直播时长;要求shuffle次数最低;数据准备:数据准备 create table test_over( ui原创 2020-06-10 11:34:29 · 624 阅读 · 0 评论 -
【原创】hive/mysq 字典表多字段替换事实表多字段
数据详情:事实表:其中多个字段是字典code。字典表:两列,字典code、字典value。需求:现在将事实表的字典code转换成字典value。案例数据准备:CREATE TABLE test_value ( id int, k1 varchar(20) DEFAULT NULL, k2 varchar(20) DEFAULT NULL, k3 varch...原创 2019-12-19 11:56:05 · 566 阅读 · 0 评论 -
浅析Hive的四种排序方式
一、order by order by 是要对输出的结果进行全局排序,这就意味着只有一个reducer才能实现(多个reducer无法保证全局有序),但是当数据量过大的时候,效率就很低。如果在严格模式下(hive.mapred.mode=strict),则必须配合limit使用。二、sort bysort by 不是全局排序,只是在进入到reducer之前完成排序,只保证了每个re原创 2018-05-09 09:16:59 · 1816 阅读 · 0 评论 -
如何取每个分组中的前几项输出
题目要求,一张表,两个字段,分别是城市,关键字,查找出每个城市关键词的前五。分析: 1.首先要求的每个维度是城市+关键字 -> 根据城市和关键字分组求出数量 2.要找到前五输出,想到ROW_NUMBER() 开窗函数实现如下:select city,keyss,ROW_NUMBER() OVER(partition by city order by count(*) desc) ...原创 2018-05-17 17:38:56 · 424 阅读 · 0 评论