Hive 分组问题

group by 中出现的字段不能再select 后面单独显示,必须配合函数使用

select count(a.id)   
from (select id,collect_set(time) as t from t_action_login where time<='20150906' group by id) as a where size(a.t)=1 and a.t[0]='20150906';  

上面中的

select id,collect_set(time) as t from t_action_login where time<='20150906' group by id  

总结:

    1. Hive不允许直接访问非group by字段;
    2. 对于非group by字段,可以用Hive的collect_set函数收集这些字段,返回一个数组;
    3. 使用数字下标,可以直接访问数组中的元素;

分区是以文件夹的形式,桶是以文件的形式

关于桶的操作 http://blog.csdn.net/lzm1340458776/article/details/43272379

原文地址:https://www.cnblogs.com/qiaoyihang/p/6209591.html