복붙노트

[HADOOP] 하이브 지원은 선택에서 선택 하는가?

HADOOP

하이브 지원은 선택에서 선택 하는가?

일부 변화, 코드 아래 하이브 수에?

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;

어떤 내 필요에 최적입니다!

해결법

  1. ==============================

    1.지금까지 내가 그런 상관 하위 쿼리를 알고 하이브에서 지원되지 않습니다. 나는 다음 포스트에서 내 생각을 확인 :

    지금까지 내가 그런 상관 하위 쿼리를 알고 하이브에서 지원되지 않습니다. 나는 다음 포스트에서 내 생각을 확인 :

    하위 쿼리 선택하면 하이브 열

    그러나 내가 생각하는 무엇을, 당신은 당신이 얻을 하려는지 달성하기 위해 쿼리를 수정할 수 있습니다 :

    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 절에서이 직교 제품을 만들어 더 많은 시간을내어 참여 크로스가 발생할 수 있음을 지적했다. 가능하다면 그것을 최적화하려고합니다.

  2. from https://stackoverflow.com/questions/22059559/does-hive-support-select-in-select by cc-by-sa and MIT license