Tôi có thể thực hiện các lựa chọn phụ trong Hive như thế nào? Tôi nghĩ rằng tôi có thể làm cho một sai lầm thực sự rõ ràng đó không phải là quá rõ ràng với tôi ...Truy vấn Hadoop Hive: Multi-join
Lỗi Tôi nhận: FAILED: Parse Error: line 4:8 cannot recognize input 'SELECT' in expression specification
Dưới đây là bảng ba nguồn của tôi:
aaa_hit -> [SESSION_KEY, HIT_KEY, URL]
aaa_event-> [SESSION_KEY,HIT_KEY,EVENT_ID]
aaa_session->[SESSION_KEY,REMOTE_ADDRESS]
.. .và những gì tôi muốn làm là chèn kết quả vào bảng kết quả như sau:
result -> [url, num_url, event_id, num_event_id, remote_address, num_remote_address]
... trong đó cột 1 là URL, cột 3 là 1 "sự kiện" hàng đầu trên mỗi URL và cột 5 là t anh ấy đứng đầu 1 REMOTE_ADDRESS để truy cập URL đó. (Ngay cả các cột là "đếm" s của cột trước đó.)
Soooooo ... tôi đã làm gì sai ở đây?
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;
Cảm ơn bạn rất nhiều :)
Lỗi nào là tổ chức cung cấp cho bạn? Hive đưa ra một lỗi khá hữu ích và vị trí chính xác trong truy vấn gây ra sự cố. Điều đó sẽ cho phép bạn xem xét vị trí chính xác trong truy vấn gây ra sự cố hoặc để chúng tôi có thể. – Nija
Điểm tốt. Tôi nhận được một lỗi ở 4: 8, hoặc bắt đầu của câu lệnh SELECT đầu tiên. Cụ thể hơn: 'FAILED: Parse Error: dòng 4: 8 không thể nhận ra đầu vào 'SELECT' trong đặc tả biểu thức ' – batman