La requête SELECT COUNT dans Amazon Athena renvoie un seul enregistrement alors que le fichier JSON d'entrée contient plusieurs enregistrements.

Dernière mise à jour : 07/10/2020

Lorsque j'exécute SELECT COUNT(*) FROM TABLE, j'obtiens la sortie « 1 », mais le fichier d'entrée comporte plusieurs enregistrements JSON. J'ai utilisé org.openx.data.jsonserde.JsonSerDe pour créer la table. Pourquoi la requête renvoie-t-elle la mauvaise valeur ?

Résolution

Lorsque les enregistrements ne sont pas séparés par un saut de ligne (\n), SELECT COUNT(*) FROM TABLE renvoie « 1 ». Exemple :

{"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"}

Pour corriger ce problème, assurez-vous que les enregistrements sont délimités par \n, comme indiqué dans l'exemple suivant :

{"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"}

Maintenant, SELECT COUNT(*) FROM TABLE renvoie « 3 ».


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?