2014-02-27 77 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。與你幾乎一樣!非常感謝! –

相關問題