`

hive的muti group by

 
阅读更多
使用muti group by之前:
echo "订购 下载 试听 搜索 pv uv :=============================================  "
 hive -e "use platform;
     select ${group},sum(buy),sum(down),sum(listen),sum(search),sum(pv),count(distinct IMSI)  from(
   select ${group},IMSI,
case when action=1 then 1  else 0 end as buy,
case when action=2 then 1  else 0 end as down,
case when action=3 then 1  else 0 end as listen,
case when action=4 then 1  else 0 end as search,
case when (${pvcase}) then 1 else 0 end as pv
from T_FeedbackAccessday2 where ${case}
)middle group by ${group};"  | grep "2013-" >tmp.data


echo "流量:============================================= "
hive -e "use platform;
 select day,porttype,subporttype,'flow',sum(abs(yidong)), sum(abs(notyidong)) from(
select day,porttype,subporttype,
case when (UCASE(network) in('CTWAP','CTNET') and abs(FluxByte)<10485760) then FluxByte  else cast(0 as bigint) end as yidong,
case when (UCASE(network) not in('CTWAP','CTNET') and abs(FluxByte)<10485760) then FluxByte  else cast(0 as bigint) end as notyidong
from T_FeedbackAccessday2 where ${case} and (PortType !=5 OR subporttype!=4) OR (PortType =5  and subporttype =4  and ActionModule= 'actionFeedback')) middle
group by day,porttype,subporttype" | grep "2013-" >flow.data





使用后:
hive -e "use platform;
from T_FeedbackAccessday2
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='buy')
select porttype,subporttype,comefrom,'',sum(case when action=1 then 1  else 0 end) as buy  where ${case} 
group by ${group}
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='down')
select porttype,subporttype,comefrom,'',sum(case when action=2 then 1  else 0 end) as buy  where ${case} 
group by ${group}
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='listen')
select porttype,subporttype,comefrom,'',sum(case when action=3 then 1  else 0 end) as buy  where ${case} 
group by ${group}
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='search')
select porttype,subporttype,comefrom,'',sum(case when action=4 then 1  else 0 end) as buy  where ${case} 
group by ${group}
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='uv')
select porttype,subporttype,comefrom,'',count(distinct IMSI) as buy  where ${case} 
group by ${group}
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='pv')
select porttype,subporttype,comefrom,'',sum(${pvcase}) as buy  where ${case}
group by ${group}
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='yidong')
select porttype,subporttype,'','',sum(${yidongcase}) as buy  where ${case}
group by porttype,subporttype
INSERT OVERWRITE TABLE result2 PARTITION(day='${day}',category='notyidong')
select porttype,subporttype,'','',sum(${notyidongcase}) as buy  where ${case}
group by porttype,subporttype;"




从我的这个使用场景来看,使用前后的运行时间是差不多的.
分享到:
评论

相关推荐

    hive 中join和Group的优化

    set hive.groupby.mapaggr.checkinterval = 100000000; //在 Map 端进行聚合操作的条目数目 set hive.groupby.skewindata = true; //解决数据倾斜的万能钥匙 当map阶段运行不了的时候,可以设置 set hive.map.aggr ...

    wing324#helloworld_zh#Hive之各个分组排序关键字的区别1

    二、Distribute by 五、Cluster by 六、如何使用sort by实现全局排序

    hive练习数据和练习题及答案

    hive的group by 和集合函数 hive的Order By/Sort By/Distribute By Join查询,join只支持等值连接 LEFT,RIGHT 和 FULL OUTER JOIN LEFT SEMI JOIN Hive当前没有实现 IN/EXISTS 子查询,可以用 LEFT SEMI JOIN 重写子...

    hive

    hive hive hive hive hive hive hive hive hive hive hive hive

    分布式数据仓库Hive大全

    3.1 Group By 28 3.2 Order /Sort By 28 4. Hive Join 29 5. HIVE参数设置 31 6. HIVE UDF 33 6.1 基本函数 33 6.1.1 关系操作符 33 6.1.2 代数操作符 34 6.1.3 逻辑操作符 35 6.1.4 复杂类型操作符 35 6.1.5 内建...

    利用Hive进行复杂用户行为大数据分析及优化案例

    利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件+代码+讲义+工具软件),具体内容包括: ...15_Hive中的数据倾斜及解决方案-group by 16_Hive中使用正则加载数据 17_Hive中使用Python脚本进行预处理

    Hive用户指南

    3.1 Group By 28 3.2 Order /Sort By 28 4. Hive Join 29 5. HIVE参数设置 31 6. HIVE UDF 33 6.1 基本函数 33 6.1.1 关系操作符 33 6.1.2 代数操作符 34 6.1.3 逻辑操作符 35 6.1.4 复杂类型操作符 35 6.1.5 内建...

    Hive3.1.2编译源码

    使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...

    hive-jdbc hive jdbc驱动

    hive-jdbc

    Hive使用手册Hive使用手册

    1 Hive 概念与连接使用: 2 2 Hive支持的数据类型: 2 2.1原子数据类型: 2 2.2复杂数据类型: 2 2.3 Hive类型转换: 3 3 Hive创建/删除数据库 3 3.1创建数据库: 3 3.2 删除数据库: 3 4 Hive 表相关语句 3 4.1 Hive ...

    Hive表生成工具,Hive表生成工具Hive表生成工具

    Hive表生成工具,Hive表生成工具Hive表生成工具

    hive介绍和hive环境搭建

    创建mysql用户:create user 'hive' identified by 'hive'; 8. 授权:grant all privileges on *.* to 'hive'@'%' with grant option 9. 重启一下这个mysql服务。 10. 使用hive用户创建数据库并修改连接信息。

    《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf

    《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第...

    hive窗口函数

    hive窗口系列函数

    hivesql语句练习

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES; 6. Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 /home/...

    Hive.sql,hive的元数据

    Hive.sql

    hive-3.1.1安装包

    Hive是一个基于Hadoop的数据仓库工具,它本身并不存储数据,部署在Hadoop集群上,数据是存储在HDFS上的. Hive所建的表在HDFS上对应的是一个文件夹,表的内容对应的是一个文件。它不仅可以存储大量的数据而且可以对...

    Hive总结.docx

    Hive原理/Hive SQL/Hive 函数/数据仓库分层和建模/Hive sql优化/数据倾斜

    Hive新手学习资料之Hive入门与实战.+Hive用户手册+hive函数大全中文版资源合集

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储...

Global site tag (gtag.js) - Google Analytics