入力 JSON ファイルに複数のレコードが含まれているにもかかわらず、Amazon Athena の SELECT COUNT クエリが 1 つのレコードのみを返す

最終更新日: 2020 年 10 月 7 日

SELECT COUNT(*) FROM TABLE を実行すると出力が「1」になりますが、入力ファイルには複数の JSON レコードがあります。テーブルの作成には org.openx.data.jsonserde.JsonSerDe を使用しました。クエリが間違った値を返すのはなぜですか?

解決方法

レコードが改行文字 (\n) で区切られていない場合、SELECT COUNT(*) FROM TABLE は「1」を返します。 例:

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

この問題を修正するには、次の例に示すように、レコードが \n で区切られていることを確認します。

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

これで、SELECT COUNT(*) FROM TABLE は「3」を返します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?