Jak mogę dokonać podsekcji w Hive? Myślę, że może być co naprawdę oczywisty błąd, że nie jest tak oczywiste dla mnie ...Kwerenda Hadoop Hive: Multi-join
błędu Otrzymuję: FAILED: Parse Error: line 4:8 cannot recognize input 'SELECT' in expression specification
Oto moje trzy tabele źródłowe:
aaa_hit -> [SESSION_KEY, HIT_KEY, URL]
aaa_event-> [SESSION_KEY,HIT_KEY,EVENT_ID]
aaa_session->[SESSION_KEY,REMOTE_ADDRESS]
.. .i co chcę zrobić, to wstawić wynik w tabeli wyników takich jak to:
result -> [url, num_url, event_id, num_event_id, remote_address, num_remote_address]
... gdzie kolumna 1 jest URL, kolumna 3 jest top 1 „zdarzenie” per URL, a kolumna 5 jest t on top 1 REMOTE_ADDRESS, aby odwiedzić ten adres URL. (Nawet kolumny są "policzone" w poprzedniej kolumnie).
Soooooo ... co tu zrobiłem źle?
INSERT OVERWRITE TABLE result2
SELECT url,
COUNT(url) AS access_url,
(SELECT events.event_id as evt,
COUNT(events.event_id) as access_evt
FROM aaa_event events
LEFT OUTER JOIN aaa_hit hits
ON (events.hit_key = hit_key)
ORDER BY access_evt DESC LIMIT 1),
(SELECT sessions.remote_address as remote_address,
COUNT(sessions.remote_address) as access_addr
FROM aaa_session sessions
RIGHT OUTER JOIN aaa_hit hits
ON (sessions.session_key = session_key)
ORDER BY access_addr DESC LIMIT 1)
FROM aaa_hit
ORDER BY access_url DESC;
Dziękuję bardzo :)
Jaki błąd daje ula? Hive podaje dość użyteczny błąd i dokładną pozycję w zapytaniu, które powoduje problem. To powinno pozwolić ci spojrzeć na dokładne miejsce w zapytaniu, które powoduje problemy, lub też możemy. – Nija
Dobra uwaga. Otrzymuję błąd o wartości 4: 8 lub początek pierwszej instrukcji podrzędnej SELECT. Dokładniej: 'FAILED: Parse Error: wiersz 4: 8 nie może rozpoznać wejścia 'SELECT' w specyfikacji wyrażenia' – batman