如何在Hive中進行子選擇?我想我可能會做一個非常明顯的錯誤,這不是那麼明顯,我...Hadoop Hive查詢:多連接
錯誤我收到:FAILED: Parse Error: line 4:8 cannot recognize input 'SELECT' in expression specification
這裏是我的三個源表:
aaa_hit -> [SESSION_KEY, HIT_KEY, URL]
aaa_event-> [SESSION_KEY,HIT_KEY,EVENT_ID]
aaa_session->[SESSION_KEY,REMOTE_ADDRESS]
.. 。而我想要做的是結果插入到結果表是這樣的:
result -> [url, num_url, event_id, num_event_id, remote_address, num_remote_address]
...其中第1列是URL,第3列是頂部1「事件」每個URL,第5列是t他頂部1個REMOTE_ADDRESS訪問該URL。 (偶列是前一列的「計數」。)
Soooooo ......我在這裏做了什麼錯?
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;
太謝謝你了:)
什麼錯誤是蜂巢給你? Hive提供了一個相當有用的錯誤,以及查詢中導致問題的確切位置。這應該允許您查看引起問題的查詢中的確切位置,或者我們可以這樣做。 – Nija
好點。我在4:8或第一個子SELECT語句的開始處收到錯誤。更具體地說:'FAILED:解析錯誤:第4行:8無法識別表達式規範中的輸入'SELECT' – batman