¿Cómo puedo hacer sub-selecciones en Hive? Creo que podría estar cometiendo un error muy obvio que no es tan obvio para mí ...Hadoop Hive Query: Multi-join
error que estoy recibiendo: FAILED: Parse Error: line 4:8 cannot recognize input 'SELECT' in expression specification
Aquí están mis tres tablas de origen:
aaa_hit -> [SESSION_KEY, HIT_KEY, URL]
aaa_event-> [SESSION_KEY,HIT_KEY,EVENT_ID]
aaa_session->[SESSION_KEY,REMOTE_ADDRESS]
.. .y lo que yo quiero hacer es insertar el resultado en una tabla de resultados como esto:
result -> [url, num_url, event_id, num_event_id, remote_address, num_remote_address]
... donde la columna 1 es la dirección URL, la columna 3 es la parte superior "evento" 1 por URL, y la columna 5 es t él encabeza 1 REMOTE_ADDRESS para visitar esa URL. (Incluso las columnas son "recuentos" de la columna anterior.)
Soooooo ... ¿Qué hice mal aquí?
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;
Muchas gracias :)
¿Qué error le está dando a la colmena? Hive proporciona un error bastante útil y la posición exacta en la consulta que está causando su problema. Eso debería permitirle ver el punto exacto en la consulta que está causando problemas, o lo que nosotros podemos hacer. – Nija
Buen punto. Recibo un error a las 4: 8 o el comienzo de la primera instrucción sub-SELECT. Más específicamente: 'FAILED: Parse Error: línea 4: 8 no puede reconocer la entrada 'SELECT' en la especificación de expresión' – batman