2014-02-27 44 views
0

是在蜂巢可能的代码波纹管,至极一些变化?:Hive是否支持在Select中选择?

insert into table webmap 
select a.res reference, b.res resource, 
(select count(ip) from weblog where resource=a.res and referer=b.res) weight 
from toprefres a join toprefres b; 

我运行在蜂巢-0.10.0-cdh4.5.0并得到了错误: 失败:ParseException的线3:1无法识别!

insert into table webmap 
select refres.reso,refres.refe, count(ip) weight from 
weblog join (select a.res refe, b.res reso from toprefres a join toprefres b) refres on 
trimrslash(weblog.resource)=refres.reso and trimrslash(weblog.referrer)=concat("http://dongxicheng.org",refres.refe) 
group by refres.reso,refres.refe; 
:附近表达式规范'选择“数”“(”

如果在蜂巢选择选择支持什么

我终于想通了解答输入0

这是完美的我的需要!

回答

0

据我所知,这种相关子查询在Hive中不受支持。我证实从下面的帖子我的想法:

Hive column as a subquery select

但是我认为,你可以修改您的查询,实现你正在试图获得:

insert into table webmap 
select a.res reference, b.res resource, 
count(weblog.ip) weight 
from toprefres a 
join toprefres b 
join weblog ON weblog.resource=a.res 
and weblog.referer=b.res; 

还指出,在您的ON条款中可能会导致交叉连接创建笛卡尔产品并花费更多时间。如果可能的话,尝试优化。

+0

是的。我终于用join来替换select-in-select。与你几乎一样!非常感谢! –

相关问题