Ir para o conteúdo

Como uso o AWS Glue para processar arquivos JSON?

3 minuto de leitura
0

Quero processar arquivos JSON em minha tarefa de ETL do AWS Glue.

Resolução

Converter arquivos JSON para outro formato

Para converter um arquivo JSON em outro formato, use o Visual ETL para criar uma tarefa de ETL do AWS Glue. Em Fonte de dados, escolha JSON. Em Destino de dados, escolha o novo formato de arquivo. Escolha S3 como o Tipo de nó na Fonte de dados e no Destino de dados.

Criar um classificador JSON para ler dados JSON aninhados

Se o seu crawler do AWS Glue precisar ler colunas aninhadas, crie um classificador personalizado definido como um classificador JSON. Em seguida, crie um novo crawler do AWS Glue. Adicione o classificador JSON personalizado à lista de classificadores do seu novo crawler do AWS Glue.

Use relationalize para converter colunas JSON aninhadas em colunas em sua tarefa de ETL do AWS Glue. Também é possível usar a opção jsonPath nos valores da opção de formato da configuração da tarefa de ETL do AWS Glue. Para exemplos de código, consulte Exemplo: leia arquivos ou pastas JSON do Amazon Simple Storage Service (Amazon S3).

Use a opção unnest para converter campos aninhados em objetos de nível superior.

Usar um crawler do AWS Glue para analisar matrizes JSON

Por padrão, o crawler do AWS Glue trata os dados como uma única matriz. Para criar um esquema baseado em cada registro em uma matriz JSON, crie um classificador personalizado JSON. Em caminho JSON, insira $[*]

Ao usar uma tarefa de ETL do AWS Glue para ler uma matriz JSON, use a função explode no Apache Spark para converter matrizes em linhas. Para mais informações, consulte pyspark.sql.functions.explode no site do Spark.

Também é possível usar a função to_json no Spark para converter matrizes em strings. Para mais informações, consulte pyspark.sql.functions.to_json no site do Spark.

Solucionar problemas de contagens de DynamicFrame que não correspondem ao número de registros em uma fonte de dados

Se sua contagem de DynamicFrame não corresponder ao número de registros em sua fonte de dados JSON, então os dados contêm registros com erro de formatação. Execute o seguinte comando errorsAsDynamicFrame para localizar registros com erro de formatação em seu conjunto de dados:

# View error fields and error data  
error_record = dynamicframe_df.errorsAsDynamicFrame().toDF().head()

Definir o valor de várias linhas para ler registros JSON que contêm várias linhas

Se seu registro JSON abranger várias linhas, defina o valor de várias linhas nas opções de formato da sua tarefa de ETL do AWS Glue como verdadeiro. Por padrão, o valor de várias linhas é definido como falso.

AWS OFICIALAtualizada há um ano