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