Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo del formato CSV in AWS Glue
AWS Glue recupera i dati dalle origini e scrive i dati sulle destinazioni archiviati e trasportati in vari formati di dati. Se i tuoi dati sono archiviati o trasportati nel formato di dati CSV, questo documento descrive le funzionalità disponibili per l'utilizzo dei tuoi dati in AWS Glue.
AWS Glue supporta solo il formato di file CSV (valori separati da virgole). Questo formato è un formato dati minimo basato su righe. I CSV spesso non sono strettamente conformi a uno standard, ma puoi fare riferimento a RFC 4180
Puoi utilizzare AWS Glue per leggere i CSV da Amazon S3 e da fonti di streaming e scrivere i CSV su Amazon S3. Puoi leggere e scrivere gli archivi bzip
e gzip
contenenti file CSV da S3. Puoi configurare il comportamento di compressione sul Parametri di connessione di S3 invece che nella configurazione discussa in questa pagina.
La tabella seguente mostra quali funzionalità comuni di AWS Glue supportano l'opzione del formato CSV.
Lettura | Scrittura | Lettura in streaming | Gruppo di file piccoli | Segnalibri di processo |
---|---|---|---|---|
Supportato | Supportato | Supportato | Supportato | Supportato |
Esempio: lettura di file CSV o cartelle da S3
Prerequisiti: avrai bisogno dei percorsi S3 (s3path
) nei file CSV o nelle cartelle che desideri leggere.
Configurazione : nelle opzioni della funzione, specifica format="csv"
. In connection_options
, utilizza la chiave paths
per specificare s3path
. Puoi configurare il modo in cui il reader interagisce con S3 in connection_options
. Per maggiori dettagli, consulta Tipi di connessione e opzioni per ETL in AWS Glue: Parametri di connessione di S3. Puoi configurare il modo in cui il reader interpreta i file CSV nel tuo format_options
. Per maggiori dettagli, consulta .Riferimento alla configurazione CSV.
Il seguente script ETL di AWS Glue mostra il processo di lettura di file o cartelle CSV da S3.
Forniamo un reader CSV personalizzato con ottimizzazioni delle prestazioni per i flussi di lavoro comuni attraverso la chiave di configurazione optimizePerformance
. Per determinare se questo reader è adatto al tuo carico di lavoro, consulta Ottimizza le prestazioni di lettura con il reader CSV SIMD vettorizzato.
Esempio: scrittura di file e cartelle CSV su S3
Prerequisiti: avrai bisogno di un DataFrame inizializzato (dataFrame
) o di un DynamicFrame (dynamicFrame
). Avrai bisogno anche del tuo percorso di output S3 previsto, s3path
.
Configurazione: nelle opzioni della funzione, specifica format="csv"
. In connection_options
, utilizza la chiave paths
per specificare s3path
. Puoi configurare il modo in cui il writer interagisce con S3 in connection_options
. Per maggiori dettagli, consulta Tipi di connessione e opzioni per ETL in AWS Glue: Parametri di connessione di S3. Puoi configurare il modo in cui l'operazione scrive il contenuto dei file in format_options
. Per maggiori dettagli, consulta .Riferimento alla configurazione CSV. Il seguente script ETL di AWS Glue mostra il processo di scrittura di file o cartelle CSV da S3.
Riferimento alla configurazione CSV
Puoi utilizzare le seguenti format_options
ovunque le librerie di AWS Glue specifichino format="csv"
:
-
separator
: specifica il carattere delimitatore. L'impostazione predefinita è una virgola, ma è possibile specificare qualsiasi altro carattere.-
Tipo: testo, Valore predefinito:
","
-
-
escaper
: specifica un carattere da utilizzare per l'escape. Questa opzione viene utilizzata solo durante la lettura di file CSV e non durante la scrittura. Se questa opzione è abilitata, il carattere immediatamente seguente viene usato così come è, ad eccezione di un piccolo set di caratteri escape ben noti (\n
,\r
,\t
e\0
).-
Tipo: testo, Valore predefinito: nessuno
-
-
quoteChar
: specifica il carattere da usare per le virgolette. Per impostazione predefinita, vengono usate le virgolette doppie. Imposta questo valore su-1
per disattivare completamente le virgolette.-
Tipo: testo, Valore predefinito:
'"'
-
-
multiLine
: specifica se un singolo record può estendersi su più righe. Ciò può accadere quando un campo contiene un carattere di nuova riga tra virgolette. Imposta questa opzione suTrue
se i registri si estendono su più righe. L'abilitazione dimultiLine
potrebbe ridurre le prestazioni perché richiede una divisione dei file più cauta durante l'analisi.-
Tipo: booleano, Valore predefinito:
false
-
-
withHeader
: specifica se trattare la prima riga come intestazione. Questa opzione può essere usata nella classeDynamicFrameReader
.-
Tipo: booleano, Valore predefinito:
false
-
-
writeHeader
: specifica se scrivere l'intestazione nell'output. Questa opzione può essere usata nella classeDynamicFrameWriter
.-
Tipo: booleano, Valore predefinito:
true
-
-
skipFirst
: specifica se ignorare la prima riga di dati.-
Tipo: booleano, Valore predefinito:
false
-
-
optimizePerformance
: specifica se utilizzare il reader CSV SIMD avanzato insieme ai formati di memoria colonnare basati su Apache Arrow. Disponibile solo in AWS Glue versione 3.0 o successiva.-
Tipo: booleano, Valore predefinito:
false
-
-
strictCheckForQuoting
: durante la scrittura di CSV, Glue può aggiungere virgolette ai valori che interpreta come stringhe. Questo viene fatto per evitare ambiguità in ciò che viene scritto. Per risparmiare tempo nella decisione su cosa scrivere, Glue può utilizzare le virgolette in determinate situazioni in cui in realtà non sono necessarie. L'attivazione di un controllo rigoroso eseguirà un calcolo più intensivo e ricorrerà alle virgolette solo quando strettamente necessario. Disponibile solo in AWS Glue versione 3.0 o successiva.-
Tipo: booleano, Valore predefinito:
false
-
Ottimizza le prestazioni di lettura con il reader CSV SIMD vettorizzato
AWS Glue versione 3.0 aggiunge un lettore CSV ottimizzato che può velocizzare significativamente le prestazioni complessive del lavoro rispetto ai reader CSV basati su righe.
Il reader ottimizzato:
-
Usa le istruzioni SIMD della CPU per leggere dal disco
-
Scrive immediatamente i record in memoria in un formato colonnare (Apache Arrow)
-
Divide i record in batch
Ciò consente di risparmiare tempo di elaborazione quando i record verranno raggruppati in batch o convertiti in un formato colonnare in un secondo momento. Alcuni esempi sono quando si modificano schemi o si recuperano i dati in base alla colonna.
Per utilizzare il reader ottimizzato, imposta "optimizePerformance"
su true
nelle format_options
o nella proprietà della tabella.
glueContext.create_dynamic_frame.from_options( frame = datasource1, connection_type = "s3", connection_options = {"paths": ["s3://s3path"]}, format = "csv", format_options={ "optimizePerformance": True, "separator": "," }, transformation_ctx = "datasink2")
Limitazioni per il reader CSV vettorizzato
Tieni presente le seguenti limitazioni del reader CSV vettorizzato:
-
Non supporta il le opzioni di formato
multiLine
eescaper
. Utilizza l'escaper
predefinito del carattere doppia virgoletta'"'
. Quando queste opzioni sono impostate, AWS Glue torna automaticamente a utilizzare il reader CSV basato su righe. -
Non supporta la creazione di un DynamicFrame con ChoiceType.
-
Non supporta la creazione di un DynamicFrame con record di errore.
-
Non supporta la lettura di file CSV con caratteri multibyte, come i caratteri giapponesi o cinesi.