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 di input CSV
Gestione dello stato e trasformazione dei dati
Step Functions ha recentemente aggiunto variabili e JSONata per gestire lo stato e trasformare i dati.
Scopri come passare dati con variabili e trasformare dati con JSONata.
Step Functions analizza CSV i file in base alle seguenti regole:
-
Le virgole (,) sono un delimitatore che separa i campi.
-
Le newline sono un delimitatore che separa i record.
-
I campi vengono trattati come stringhe. Per le conversioni dei tipi di dati, usa la funzione
States.StringToJson
intrinseca 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.
-
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 analizzare un file di input CSV
Supponiamo che tu abbia fornito un CSV file denominato
che contiene una riga come input. Quindi, hai archiviato questo file in un bucket Amazon S3 denominato. myCSVInput.csv
Il CSV file è 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 CSV file 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
]
}
]