Pregunta

Estoy tratando de encontrar algunos valores atípicos en mi base de datos usando Hive y estoy usando la técnica de desviación estándar. Mi consulta es:

SELECT ID
FROM data
WHERE ID < (AVG(ID) + STDDEV(ID))
  AND ID > (AVG(ID) - STDDEV(ID));

Cuando ejecuto este código, recibo el siguiente error:

 Error while compiling statement: FAILED: SemanticException [Error 10128]: Line 3:12 Not yet supported place for UDAF 'AVG'

¿Cómo resolver este problema? ¡Muchas gracias!

¿Fue útil?

Solución

Parece que Hive no te deja usar avg En una cláusula Where. Puedes resolver esto con una subconsulta.

SELECT id
FROM 
    (SELECT id, AVG(id) as avg_id, STDDEV(id) as stddev_id FROM data)
WHERE id < avg_id + stddev_id AND id > avg_id - stddev_id
Licenciado bajo: CC-BY-SA con atribución
scroll top