Hive 查询中的问题3

Posted 三只产品数据汪1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive 查询中的问题3相关的知识,希望对你有一定的参考价值。

1、对于hive的分区问题,真是有过之而不及啊

取月份的时候又懵了,之前都是日期,以函数的思维,什么year(),month()的,dt是分区的时间;

在这里要取得是字符串前几位:

还有顺便同步下时间取值:

-- 实际上,unixtime(unixtime,format)→timestamp 可以根据时间运算符提取任意形式的年、月、日、时、分、秒的组合,如:

case when FROM_UNIXTIME(grab_unix_time, 'HH:mm:ss')>'12:00:00' then 1

else end

-- 同时可以对日期的连接符进行自定义:

FROM_UNIXTIME(grab_unix_time, 'yyyy/MM/dd')

-- 结果:2018/02/01

Hive 查询中的问题3

执行结果:

Hive 查询中的问题3

Hive 查询中的问题3

2、还有group by 用了聚合函数一定要用这个,在select里边就得用,不然所有的提示都是

3、还有关于取数需要设置各种条件

  用case when 需要好几个表关联使用,都放在from里边包含就好,因为放在外边,就认为这是个聚合函数,要group by 很多次

  还有我发现,在做条件关联后,即使分类排序后,还是会出现很多按比如订单号重复很多项,也就是会按订单的数量去做统计;

  所以还是一定要加上,类似这样的,在日期上加上distinct就OK了;

以上,也是查询的时候懵懵的,慢慢学吧~


以上是关于Hive 查询中的问题3的主要内容,如果未能解决你的问题,请参考以下文章

按 Hive 中的列分组

Hive 查询中的前向滚动平均值

Hive性能优化之表设计优化

查询中的 Hive DATE 操作

如何从具有动态分区的选择查询中插入 Hive 中的列?

减少 Hive 查询执行时间的方法