As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando o formato JSON no AWS Glue
AWS O Glue recupera dados de fontes e grava dados em destinos armazenados e transportados em vários formatos de dados. Se seus dados forem armazenados ou transportados no formato de dados JSON, este documento apresenta os recursos disponíveis para usar seus dados no Glue. AWS
AWS O Glue suporta o uso do formato JSON. Esse formato representa estruturas de dados com forma consistente, mas com conteúdo flexível, que não são baseadas em linhas ou colunas. O JSON é definido por padrões paralelos emitidos por várias autoridades, e uma dela é a ECMA-404. Para ver uma apresentação do formato por uma fonte bastante referenciada, consulte Introducing JSON
Você pode usar o AWS Glue para ler arquivos JSON do Amazon S3, bem bzip
como arquivos JSON gzip
compactados. Você configura o comportamento de compactação no Parâmetros de conexão do S3 e não na configuração apresentada nesta página.
Leitura | Escrever | Leitura de transmissão | Agrupar arquivos pequenos | Marcadores de trabalho |
---|---|---|---|---|
Compatível | Compatível | Compatível | Compatível | Compatível |
Exemplo: ler arquivos ou pastas JSON do S3
Pré-requisitos: você precisará dos caminhos do S3 (s3path
) para os arquivos ou pastas JSON que gostaria de ler.
Configuração: nas opções da sua função, especifique format="json"
. Em seu connection_options
, use a chave paths
para especificar seu s3path
. Você pode alterar ainda mais a forma como sua operação de leitura atravessará o S3 nas opções de conexão. Consulte Referência de opções de conexão do Amazon S3 para obter mais detalhes. Você pode configurar como o leitor interpreta os arquivos JSON em seu format_options
. Para obter mais detalhes, consulte JSON Configuration Reference (Referência de configuração de JSON).
O script AWS Glue ETL a seguir mostra o processo de leitura de arquivos ou pastas JSON do S3:
Exemplo: gravar arquivos e pastas JSON no S3
Pré-requisitos: Você precisará de um inicializado DataFrame (dataFrame
) ou (). DynamicFrame dynamicFrame
Você também precisará do caminho de saída esperado do S3, s3path
.
Configuração: nas opções da sua função, especifique format="json"
. Em seu connection_options
, use a chave paths
para especificar s3path
. Em connection_options
, você pode alterar ainda mais a forma como o gravador interage com o S3. Para obter detalhes, consulte Opções de formato de dados para entradas e saídas ETL no AWS Glue:. Referência de opções de conexão do Amazon S3 Você pode configurar como o gravador interpreta os arquivos JSON em seu format_options
. Para obter mais detalhes, consulte JSON Configuration Reference (Referência de configuração de JSON).
O script AWS Glue ETL a seguir mostra o processo de gravação de arquivos ou pastas JSON a partir do S3:
Referência de configuração de JSON
Você pode usar os seguintes valores de format_options
com format="json"
:
-
jsonPath
— Uma JsonPathexpressão que identifica um objeto a ser lido em registros. Isso é especialmente útil quando um arquivo contém registros aninhados dentro de uma matriz externa. Por exemplo, a JsonPath expressão a seguir tem como alvo o id
campo de um objeto JSON.format="json", format_options={"jsonPath": "$.id"}
multiLine
: um valor booliano que especifica se um único registro pode gerar várias linhas. Isso pode ocorrer quando um campo contém um caractere de nova linha entre aspas. Você deve definir essa opção como"true"
se algum registro ocupar várias linhas. O valor padrão é"false"
, que permite uma divisão de arquivos mais radical durante a análise.-
optimizePerformance
: um valor booleano que especifica se deve usar o leitor SIMD para JSON avançado junto com formatos de memória colunar baseados em Apache Arrow. Disponível apenas no AWS Glue 3.0. Não compatível commultiLine
oujsonPath
. Fornecer qualquer uma dessas opções instruirá o AWS Glue a usar o leitor padrão. -
withSchema
: um valor de String que especifica um esquema de tabela no formato descrito em Especificar manualmente o esquema XML. Usado apenas com ooptimizePerformance
ao ler de conexões que não são do catálogo.
Usar o leitor vetorizado SIMD para JSON com formato colunar Apache Arrow
O AWS Glue versão 3.0 adiciona um leitor vetorizado para dados JSON. Ele executa duas vezes mais rápido sob certas condições, em comparação com o leitor padrão. Esse leitor vem com certas limitações que os usuários devem conhecer antes de usar, documentadas nesta seção.
Para usar o leitor otimizado, defina "optimizePerformance"
como Verdadeiro no format_options
ou propriedade de tabela. Você também precisará fornecer withSchema
a menos que esteja lendo do catálogo. O withSchema
espera uma entrada conforme descrito em Especificar manualmente o esquema XML
// Read from S3 data source glueContext.create_dynamic_frame.from_options( connection_type = "s3", connection_options = {"paths": ["s3://
s3path
"]}, format = "json", format_options={ "optimizePerformance": True, "withSchema":SchemaString
}) // Read from catalog table glueContext.create_dynamic_frame.from_catalog( database = database, table_name = table, additional_options = { // The vectorized reader for JSON can read your schema from a catalog table property. "optimizePerformance": True, })
Para obter mais informações sobre o edifício a SchemaString
na biblioteca AWS Glue, consulteTipos de extensão do PySpark.
Limitações para o leitor vetorizado de CSV
Observe as seguintes limitações:
Elementos JSON com objetos aninhados ou valores de matriz não são compatíveis. Se fornecido, o AWS Glue retornará ao leitor padrão.
Um esquema deve ser fornecido do Catálogo ou com
withSchema
.Não compatível com
multiLine
oujsonPath
. Fornecer qualquer uma dessas opções instruirá o AWS Glue a usar o leitor padrão.Fornecer registros de entrada que não correspondam ao esquema de entrada resultará em falha do leitor.
Registros de erro não serão criados.
Arquivos JSON com caracteres multiByte, como caracteres japoneses ou chineses, não são aceitos.