Salta al contenuto

Come posso utilizzare AWS Glue per elaborare file JSON?

3 minuti di lettura
0

Desidero elaborare file JSON nel mio processo ETL di AWS Glue.

Risoluzione

Converti file JSON in un altro formato

Per convertire un file JSON in un altro formato, utilizza Visual ETL per creare un processo ETL di AWS Glue. Per Data source (Origine dati), scegli JSON. Per Data target (Destinazione dati), scegli il nuovo formato di file. Scegli S3 come Node type (Tipo di nodo) per Data source (Origine dati) e Data target (Destinazione dati).

Crea un classificatore JSON per leggere i dati JSON nidificati

Se il crawler AWS Glue deve leggere colonne nidificate, crea un classificatore personalizzato definito come classificatore JSON. Quindi crea un nuovo crawler AWS Glue. Aggiungi il classificatore JSON personalizzato all'elenco di classificatori del nuovo crawler AWS Glue.

Utilizza relationalize per convertire le colonne JSON nidificate in colonne nel processo ETL di AWS Glue. Nei valori delle opzioni di formato della configurazione del processo ETL di AWS Glue, puoi anche utilizzare l'opzione JSONPath. Per esempi di codice, consulta Esempio: lettura di cartelle o file JSON da Amazon Simple Storage Service (Amazon S3).

Utilizza l'opzione unnest per convertire i campi nidificati in oggetti di primo livello.

Utilizza un crawler AWS Glue per analizzare gli array JSON

Per impostazione predefinita, il crawler AWS Glue tratta i dati come un singolo array. Per creare uno schema basato su ogni record in un array JSON, crea un classificatore personalizzato JSON. Per Percorso JSON, inserisci $[*]

Quando utilizzi un processo ETL di AWS Glue per leggere un array JSON, utilizza la funzione explode in Apache Spark per convertire gli array in righe. Per ulteriori informazioni, consulta pyspark.sql.functions.explode sul sito web di Spark.

Puoi anche utilizzare la funzione to_json in Spark per convertire gli array in stringhe. Per ulteriori informazioni, consulta pyspark.sql.functions.to_json sul sito web di Spark.

Risolvi i problemi relativi ai conteggi DynamicFrame che non corrispondono al numero di record in un'origine dati

Se il conteggio DynamicFrame non corrisponde al numero di record nell'origine dati JSON, i dati contengono record non validi. Esegui il seguente comando errorsAsDynamicFrame per individuare i record non validi nel set di dati:

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

Imposta il valore multiriga per leggere i record JSON che contengono più righe

Se il record JSON si estende su più righe, imposta il valore multiriga nelle opzioni di formato della configurazione del processo ETL di AWS Glue su true. Per impostazione predefinita, il valore multiriga è impostato su false.

AWS UFFICIALEAggiornata 2 anni fa