Por que a consulta SELECT COUNT no Amazon Athena retorna somente um registro, mesmo que o arquivo JSON de entrada tenha vários registros?

1 minuto de leitura
0

Ao executar SELECT COUNT (*) FROM TABLE, a saída é “1”, mas o arquivo de entrada tem vários registros JSON. Usei org.openx.data.jsonserde.JsonSerDe para criar a tabela.

Resolução

Quando os registros não são separados por um caractere de nova linha (\n), a consulta SELECT COUNT (*) FROM TABLE retorna “1.”

Exemplo:

{"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 corrigir esse problema, certifique-se de que os registros estejam delimitados por \n, conforme mostrado no exemplo a seguir:

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

Nesse caso, SELECT COUNT (*) FROM TABLE retorna “3.”

Observação: O SerDE espera que cada documento JSON esteja em uma única linha de texto sem caracteres de terminação de linha separando os campos no registro. Para mais informações, consulte Práticas recomendadas para leitura de dados JSON.


Informações relacionadas

SELECIONAR

CRIAR TABELA

Execução de consultas SQL usando o Amazon Athena

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos