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

posted @ 2016-12-29 21:25  George_sz  Views(1283)  Comments(0Edit  收藏  举报