Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
So analysiert Step Functions Eingabedateien CSV
Step Functions analysiert CSV Dateien auf der Grundlage der folgenden Regeln:
-
Kommas (,) sind ein Trennzeichen, das Felder voneinander trennt.
-
Zeilenumbrüche sind ein Trennzeichen, das Datensätze voneinander trennt.
-
Felder werden als Zeichenketten behandelt. Verwenden Sie für Datentypkonvertierungen die
States.StringToJson
systeminterne Funktion in. ItemSelector (Karte) -
Doppelte Anführungszeichen (“ „) sind nicht erforderlich, um Zeichenketten einzuschließen. Zeichenfolgen, die in doppelte Anführungszeichen eingeschlossen sind, können jedoch Kommas und Zeilenumbrüche enthalten, ohne als Datensatztrennzeichen zu dienen.
-
Sie können doppelte Anführungszeichen beibehalten, indem Sie sie wiederholen.
-
Wenn die Anzahl der Felder in einer Zeile geringer ist als die Anzahl der Felder in der Kopfzeile, stellt Step Functions leere Zeichenketten für die fehlenden Werte bereit.
-
Wenn die Anzahl der Felder in einer Zeile größer ist als die Anzahl der Felder in der Kopfzeile, überspringt Step Functions die zusätzlichen Felder.
Beispiel des Analysierens einer Eingabedatei CSV
Angenommen, Sie haben eine CSV Datei mit dem Namen bereitgestellt
, die eine Zeile als Eingabe enthält. Anschließend haben Sie diese Datei in einem Amazon S3 S3-Bucket mit dem Namen gespeichertmyCSVInput.csv
. Die CSV Datei sieht wie folgt aus.amzn-s3-demo-bucket
abc,123,"This string contains commas, a double quotation marks (""), and a newline (
)",{""MyKey"":""MyValue""},"[1,2,3]"
Die folgende Zustandsmaschine liest diese CSV Datei und verwendet ItemSelector (Karte) sie, um die Datentypen einiger Felder zu konvertieren.
{ "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)" } } } }
Wenn Sie diesen Zustandsmaschine ausführen, erzeugt er die folgende Ausgabe.
[
{
"MyNumbers": 123,
"MyObject": {
"MyKey": "MyValue"
},
"MyString": "This string contains commas, a double quote (\"), and a newline (\n)",
"MyLetters": "abc",
"MyArray": [
1,
2,
3
]
}
]