기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Step Functions가 입력 CSV 파일을 파싱하는 방법
Step Functions는 다음 규칙에 따라 CSV 파일을 파싱합니다.
-
쉼표 (,) 는 필드를 구분하는 구분 기호입니다.
-
줄 바꿈은 레코드를 구분하는 구분 기호입니다.
-
필드는 문자열로 취급됩니다. 데이터 유형 변환의 경우 ItemSelector (지도)에서
States.StringToJson
내장 함수를 사용합니다. -
문자열을 묶을 때는 큰따옴표 (” “) 가 필요하지 않습니다. 그러나 큰따옴표로 묶인 문자열에는 레코드 구분자로 사용되지 않고 쉼표와 줄 바꿈이 포함될 수 있습니다.
-
큰따옴표를 반복해서 따옴표를 보존할 수 있습니다.
-
행의 필드 수가 헤더의 필드 수보다 적은 경우 Step Functions는 누락된 값에 대해 빈 문자열을 제공합니다.
-
행의 필드 수가 헤더의 필드 수보다 많으면 Step Functions는 추가 필드를 건너뛰습니다.
예 입력 파일 파싱 작업 CSV
행 하나를 입력으로 포함하는 이름의 CSV 파일을
제공했다고 가정해 보겠습니다. 그런 다음 myCSVInput.csv
이라는 Amazon S3 버킷에 이 파일을 저장했습니다. CSV파일은 다음과 같습니다.amzn-s3-demo-bucket
abc,123,"This string contains commas, a double quotation marks (""), and a newline (
)",{""MyKey"":""MyValue""},"[1,2,3]"
다음 상태 머신은 이 CSV 파일을 읽고 일부 필드의 데이터 유형을 ItemSelector (지도) 변환하는 데 사용합니다.
{ "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)" } } } }
이 상태 시스템을 실행하면 다음 출력이 생성됩니다.
[
{
"MyNumbers": 123,
"MyObject": {
"MyKey": "MyValue"
},
"MyString": "This string contains commas, a double quote (\"), and a newline (\n)",
"MyLetters": "abc",
"MyArray": [
1,
2,
3
]
}
]