分享

hive group by语句的问题

jchubby 发表于 2016-1-29 12:38:33 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 8 27087
select a.product_no,min(amt) TX_AMT_REC3_MIN_AMT from TX_AMT_REC3_MIN_AMT_1 a group by a.product_no;
执行上面的hql语句,mapreduce任务跑不起来,总是停留在0%,有时候跑到77%又退回去60%,之后任务失败,如下图:

当我在group by后面加上该表的另外一个字段的时候就可以跑通了:
select a.product_no,min(amt) TX_AMT_REC3_MIN_AMT from TX_AMT_REC3_MIN_AMT_1 a group by a.product_no,a.amt;
但是这样的结果不对,去查了日志,没有什么异常信息,这是为什么呢?
1.png

已有(8)人评论

跳转到指定楼层
jchubby 发表于 2016-1-29 12:58:48
强行跑完的话就是这样子的结果
1.png
回复

使用道具 举报

when30 发表于 2016-1-29 13:16:35
可能是因为别名的原因,去掉试试
回复

使用道具 举报

jchubby 发表于 2016-1-29 17:37:20
when30 发表于 2016-1-29 13:16
可能是因为别名的原因,去掉试试

一样的,还是不行。。。
回复

使用道具 举报

when30 发表于 2016-1-29 17:52:13
jchubby 发表于 2016-1-29 17:37
一样的,还是不行。。。

楼主怎么改的,贴出详细内容来
回复

使用道具 举报

Alkaloid0515 发表于 2016-1-29 18:39:56
试试下面
select a.product_no,collect_set( min(amt)  )[0]  from TX_AMT_REC3_MIN_AMT_1 a group by a.product_no;
回复

使用道具 举报

jchubby 发表于 2016-1-29 19:06:05
Alkaloid0515 发表于 2016-1-29 18:39
试试下面
select a.product_no,collect_set( min(amt)  )[0]  from TX_AMT_REC3_MIN_AMT_1 a group by a.p ...

跑不起来呀

1.png
回复

使用道具 举报

easthome001 发表于 2016-1-29 20:21:18

collect_set存在,但是不支持min
select a.product_no,collect_set( min(amt)  )[0]  from TX_AMT_REC3_MIN_AMT_1 a group by a.product_no;
改成下面
select a.product_no,collect_set( amt)[0]  from TX_AMT_REC3_MIN_AMT_1 a group by a.product_no;

如果不满足要求的话,用于其它字段试试,这应该是一种解决方案

回复

使用道具 举报

jchubby 发表于 2016-2-1 10:16:10
easthome001 发表于 2016-1-29 20:21
collect_set存在,但是不支持min
select a.product_no,collect_set( min(amt)  )[0]  from TX_AMT_REC3_ ...

周末在家连不上服务器,刚刚跑了一下还是一样的呀,是不是我hive配置的环境有问题?比如mr程序可以用的内存和cpu资源等
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条