Столбец Hive как выбор подзапроса

Я пытаюсь сделать что-то вроде ниже с Hive. Как я могу определить столбец в Hive как подзапрос? Возможно ли это в Hive?

hive -e "           
select
distinct i.SearchListingID,
(select count(*) 
    from calls c 
    where c.ServiceID = i.SearchListingID
    ) as CallsCount
from Impressions i
where i.yyyymmdd = 20120401
limit 10" > ImpressionCalls.txt

Hive history file=/tmp/jd/hive_job_log_jd_201205222049_550931420.txt

FAILED: Ошибка синтаксического анализа: строка 4:1 не может распознать ввод рядом с 'select' 'count' '(' в спецификации выражения


person J.D.    schedule 22.05.2012    source источник


Ответы (1)


Коррелированные подзапросы не поддерживаются в Hive. Как насчет чего-то подобного вместо этого? (У меня не было возможности проверить этот запрос на Hive самостоятельно)

select
    i.SearchListingID,
    count(*)
from
    (
    select
         distinct i.SearchListingID as SearchListingID 
    from 
        Impressions i
    where
        i.yyyymmdd = 20120401
    )i
    join
    calls c
    on(c.ServiceID = i.SearchListingID)
limit 10
person Mark Grover    schedule 23.05.2012
comment
Спасибо! Вы меня на правильном пути. Мне пришлось добавить группу по предложению i.SearchListingID, чтобы заставить его работать. - person J.D.; 23.05.2012