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à.
Come Step Functions analizza i file CSV di input
Gestione dello stato e trasformazione dei dati
Scopri come passare dati tra stati con variabili e Trasformare dati con. JSONata
Step Functions analizza i file delimitati da testo in base alle seguenti regole:
-
Il delimitatore che separa i campi è specificato da in.
CSVDelimiterReaderConfig Il delimitatore predefinito è.COMMA -
Le nuove righe sono un delimitatore che separa i record.
-
I campi vengono trattati come stringhe. Per le conversioni dei tipi di dati, usa la funzione
States.StringToJsonintrinseca in. ItemSelector (Mappa) -
Le virgolette doppie (» «) non sono necessarie per racchiudere stringhe. Tuttavia, le stringhe racchiuse tra virgolette doppie possono contenere virgole e nuove righe senza fungere da delimitatori di record.
-
È possibile conservare le virgolette doppie ripetendole.
-
Le barre rovesciate (\) sono un altro modo per sfuggire ai caratteri speciali. Le barre rovesciate funzionano solo con altre barre rovesciate, virgolette doppie e con il separatore di campo configurato come virgola o barra verticale. Una barra rovesciata seguita da qualsiasi altro carattere viene rimossa automaticamente.
-
È possibile conservare le barre rovesciate ripetendole. Ad esempio:
path,size C:\\Program Files\\MyApp.exe,6534512 -
Le barre rovesciate che sfuggono alle virgolette doppie (
\") funzionano solo se sono incluse in coppia, quindi consigliamo di evitare le virgolette doppie ripetendole:."" -
Se il numero di campi in una riga è inferiore al numero di campi nell'intestazione, Step Functions fornisce stringhe vuote per i valori mancanti.
-
Se il numero di campi in una riga è superiore al numero di campi nell'intestazione, Step Functions salta i campi aggiuntivi.
Esempio di analisi di un file CSV di input
Supponiamo di aver fornito un file CSV denominato che contiene una riga come input. Quindi, hai archiviato questo file in un bucket Amazon S3 denominato. myCSVInput.csv Il file CSV è il seguente.amzn-s3-demo-bucket
abc,123,"This string contains commas, a double quotation marks (""), and a newline (
)",{""MyKey"":""MyValue""},"[1,2,3]"La seguente macchina a stati legge questo file CSV e lo utilizza ItemSelector (Mappa) per convertire i tipi di dati di alcuni campi.
{ "StartAt": "Map", "States": { "Map": { "Type": "Map", "ItemProcessor": { "ProcessorConfig": { "Mode": "DISTRIBUTED", "ExecutionType": "STANDARD" }, "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "End": true } } }, "End": true, "Label": "Map", "MaxConcurrency": 1000, "ItemReader": { "Resource": "arn:aws:states:::s3:getObject", "ReaderConfig": { "InputType": "CSV", "CSVHeaderLocation": "GIVEN", "CSVHeaders": [ "MyLetters", "MyNumbers", "MyString", "MyObject", "MyArray" ] }, "Parameters": { "Bucket": "amzn-s3-demo-bucket", "Key": "myCSVInput.csv" } }, "ItemSelector": { "MyLetters.$": "$$.Map.Item.Value.MyLetters", "MyNumbers.$": "States.StringToJson($$.Map.Item.Value.MyNumbers)", "MyString.$": "$$.Map.Item.Value.MyString", "MyObject.$": "States.StringToJson($$.Map.Item.Value.MyObject)", "MyArray.$": "States.StringToJson($$.Map.Item.Value.MyArray)" } } } }
Quando si esegue questa macchina a stati, produce il seguente output.
[
{
"MyNumbers": 123,
"MyObject": {
"MyKey": "MyValue"
},
"MyString": "This string contains commas, a double quote (\"), and a newline (\n)",
"MyLetters": "abc",
"MyArray": [
1,
2,
3
]
}
]