¿Por qué la consulta SELECT COUNT de Amazon Athena solo devuelve un registro aunque el archivo JSON de entrada tenga varios registros?

1 minutos de lectura
0

Cuando ejecuto SELECT COUNT(*) FROM TABLE, el resultado es «1», pero el archivo de entrada tiene varios registros JSON. Utilicé org.openx.data.jsonserde.JsonSerDe para crear la tabla.

Resolución

Cuando los registros no están separados por un caracter de nueva línea (\n), la consulta SELECT COUNT(*) FROM TABLE devuelve «1».

Ejemplo:

{"ID":"1","MYTIMESTAMP":"2020-06-09 17:50:46.267","Name":"John"}{"ID":"2","MYTIMESTAMP":"2020-06-10 17:50:46.267","Name":"Joel"}{"ID":"3","MYTIMESTAMP":"2020-06-10 17:50:46.267","Name":"Patrick"}

Para corregir este problema, asegúrese de que los registros están delimitados por \n, como se muestra en el siguiente ejemplo:

{"ID":"1","MYTIMESTAMP":"2020-06-09 17:50:46.267","Name":"John"}

{"ID":"2","MYTIMESTAMP":"2020-06-10 17:50:46.267","Name":"Joel"}

{"ID":"3","MYTIMESTAMP":"2020-06-10 17:50:46.267","Name":"Patrick"}

En este caso, SELECT COUNT(*) FROM TABLE devuelve «3».

Nota: El SerDE espera que cada documento JSON esté en una sola línea de texto sin caracteres de terminación de línea que separen los campos del registro. Para obtener más información, consulte Prácticas recomendadas para leer datos JSON.


Información relacionada

SELECCIONAR

CREAR TABLA

Ejecutar consultas SQL mediante Amazon Athena

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año