Hive之累计报表生成

1. 原始数据

u01 2019/1/21 5
u02 2019/1/23 6
u03 2019/1/22 8
u04 2019/1/20 3
u01 2019/1/23 6
u01 2019/2/21 8
u02 2019/1/23 6
u01 2019/2/22 4

2. 建表映射上述数据

create table action (userId string, visitDate string, visitCount int) row format delimited fields terminated by "\t";

3. 按照用户和月份分组生成某用户的当月总访问次数

create table action_amount
as
select tmp.userid,tmp.month,sum(tmp.visitcount) amount from (select userid,from_unixtime(unix_timestamp(visitdate,'yyyy/mm/dd'),'yyyy-mm') month,visitcount from action) tmp group by tmp.userid,tmp.month;

4. 通过两个表的自连接,建立临时表

create table action_tmp
as
select a.amount as a_amount,b.*
from action_amount a join action_amount b on a.userid=b.userid
where a.month <= b.month;

5. 将上述表按照userid和month分组

select userid,month,max(amount) as amount,sum(a_amount) as accumulate
from action_tmp
group by userid,month;

6. 使用加窗函数完成累计报表生成

select userid, month,amount,
sum(amount) over(partition by userid order by month rows between unbounded preceding and current row) as accumulate
from action_amount;

Hive之累计报表生成的更多相关文章

  1. Hive面试题——累计求和

    需求: 有如下访客访问次数统计表 t_access_times 访客 月份 访问次数 A 2015-01 5 A 2015-01 15 B 2015-01 5 A 2015-01 8 B 2015-0 ...

  2. Hive UDF初探

    1. 引言 在前一篇中,解决了Hive表中复杂数据结构平铺化以导入Kylin的问题,但是平铺之后计算广告日志的曝光PV是翻倍的,因为一个用户对应于多个标签.所以,为了计算曝光PV,我们得另外创建视图. ...

  3. 【转】Hive导入10G数据的测试

    原博文出自于: http://blog.fens.me/hadoop-hive-10g/ 感谢! Hive导入10G数据的测试 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让H ...

  4. 如何打造100亿SDK累计覆盖量的大数据系统

    作为推送行业领导者,截止目前个推SDK累计安装覆盖量达100亿(含海外),接入应用超过43万,独立终端覆盖超过10亿 (含海外).个推系统每天会产生大量的日志和数据,面临许多数据处理方面的挑战. 首先 ...

  5. hive常用操作

    相关显示参数设置 显示参数设置 set hive.cli.print.header=true; // 打印列名 set hive.cli.print.row.to.vertical=true; // ...

  6. Hive| ETL清洗& 查询练习

    ETL清洗数据 导Jar包 <dependencies> <dependency> <groupId>log4j</groupId> <artif ...

  7. Hive原理总结(完整版)

    目录 课程大纲(HIVE增强) 3 1. Hive基本概念 4 1.1 Hive简介 4 1.1.1 什么是Hive 4 1.1.2 为什么使用Hive 4 1.1.3 Hive的特点 4 1.2 H ...

  8. Hive-1.2.1_06_累计报表查询

    1. 数据准备 # 本地数据准备 [yun@mini01 hive]$ pwd /app/software/hive [yun@mini01 hive]$ ll /app/software/hive/ ...

  9. Hive中小表与大表关联(join)的性能分析【转】

    Hive中小表与大表关联(join)的性能分析 [转自:http://blog.sina.com.cn/s/blog_6ff05a2c01016j7n.html] 经常看到一些Hive优化的建议中说当 ...

随机推荐

  1. Windbg Memory(内存)窗口的使用

    在 WinDbg 中,可以查看和编辑内存,通过输入命令或通过使用内存窗口. 内存窗口的打开 通过菜单View-->Memory 通过快捷键Alt+5 通过工具栏 使用内存窗口 通过上面方式打开的 ...

  2. Codeforces Global Round 3 题解

    这场比赛让我上橙了. 前三题都是大水题,不说了. 第四题有点难想,即使想到了也不能保证是对的.(所以说下面D的做法可能是错的) E的难度是 $2300$,但是感觉很简单啊???说好的歪果仁擅长构造的呢 ...

  3. 解析node-cors模块

    (function () { 'use strict'; var assign = require('object-assign'); var vary = require('vary'); var ...

  4. 20189220余超 团队博客——阅读软件app

    项目名称 小说阅读器 项目功能 注册登录 用户信息.用户密码.用户图像修改 书籍分类 书架 书籍搜索(作者名或书籍名) 书籍阅读(仅txt格式,暂不支持PDF等其他格式) 阅读字体.背景颜色.翻页效果 ...

  5. Solr7.x学习(8)-使用spring-data-solr

    1.maven配置 <dependency> <groupId>org.springframework.data</groupId> <artifactId& ...

  6. Maven 教程(9)— Maven坐标详解

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79544532 Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种j ...

  7. Python【每日一问】26

    问: [基础题]:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数 [提高题]:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第 10 次落地时,共经过多 ...

  8. javascript的立即执行函数

    在javascript中有引入立即执行函数的概念,那么什么是立即执行函数呢?立即执行函数又是怎么写的呢?立即执行函数与普通函数有什么区别呢? 先来看看一般的函数: function a(){ var ...

  9. BussinessSkinForm 入门教程

    BussinessSkinForm 入门教程 By 刘家君(qufo) 作者:刘家君 工作单位:福建省 泉州鹭燕医药有限公司 职务:网络管理员 网名:qufo Mail:qufo@tom.com,qu ...

  10. [终极巨坑]golang+vue开发日记【一】,环境搭建篇

    写在前面 这个golang+vue大部分的内容是基于bydmm(橙卡)大佬的视频学来的,我在这里只是做一下个人开发的笔记,就是图一个乐,毕竟我只是个应届毕业生,如果真的要学请:bydmm的b站空间. ...