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