Warum gibt die SELECT COUNT-Abfrage in Amazon Athena nur einen Datensatz zurück, obwohl die JSON-Eingabedatei mehrere Datensätze enthält?

Lesedauer: 1 Minute
0

Wenn ich SELECT COUNT (*) FROM TABLE ausführe, ist die Ausgabe „1“, aber die Eingabedatei enthält mehrere JSON-Datensätze. Ich habe org.openx.data.jsonserde.JsonSerde verwendet, um die Tabelle zu erstellen.

Lösung

Wenn Datensätze nicht durch einen Zeilenumbruch (\ n) getrennt sind, gibt die SELECT COUNT (\ *) FROM TABLE-Abfrage „1.“ zurück

Beispiel:

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

Um dieses Problem zu beheben, stellen Sie sicher, dass die Datensätze durch\ n getrennt sind, wie im folgenden Beispiel gezeigt:

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

In diesem Fall gibt SELECT COUNT (*) FROM TABLE den Wert „3.“ zurück

Hinweis: Das SerDe erwartet, dass sich jedes JSON-Dokument in einer einzigen Textzeile befindet, ohne dass Zeilenabschlusszeichen die Felder im Datensatz trennen. Weitere Informationen finden Sie unter Bewährte Methoden für das Lesen von JSON-Daten.


Ähnliche Informationen

WÄHLEN

TABELLE ERSTELLEN

Ausführen von SQL-Abfragen mit Amazon Athena

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren