Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cómo analiza Step Functions los archivos de entrada CSV
Step Functions analiza CSV los archivos según las siguientes reglas:
-
Las comas (,) son un delimitador que separa los campos.
-
Las líneas nuevas son un delimitador que separa los registros.
-
Los campos se tratan como cadenas. Para las conversiones de tipos de datos, utilice la función intrínseca
States.StringToJson
en ItemSelector (Mapa). -
No se requieren comillas dobles (» «) para encerrar cadenas. Sin embargo, las cadenas entre comillas dobles pueden contener comas y líneas nuevas sin que actúen como delimitadores de registro.
-
Puede conservar las comillas dobles repitiéndolas.
-
Si el número de campos de una fila es inferior al número de campos del encabezado, Step Functions proporciona cadenas vacías para los valores faltantes.
-
Si el número de campos de una fila es mayor que el número de campos del encabezado, Step Functions omite los campos adicionales.
ejemplo de analizar un archivo de entrada CSV
Supongamos que ha proporcionado un CSV archivo con un nombre
que contiene una fila como entrada. A continuación, ha almacenado este archivo en un bucket de Amazon S3 denominado myCSVInput.csv
. El CSV archivo es el siguiente.amzn-s3-demo-bucket
abc,123,"This string contains commas, a double quotation marks (""), and a newline (
)",{""MyKey"":""MyValue""},"[1,2,3]"
La siguiente máquina de estados lee este CSV archivo y lo utiliza ItemSelector (Mapa) para convertir los tipos de datos de algunos de los campos.
{ "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)" } } } }
Cuando ejecuta esta máquina de estado, produce el siguiente resultado.
[
{
"MyNumbers": 123,
"MyObject": {
"MyKey": "MyValue"
},
"MyString": "This string contains commas, a double quote (\"), and a newline (\n)",
"MyLetters": "abc",
"MyArray": [
1,
2,
3
]
}
]