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.
Arbeiten Sie mit CSV-Daten in AWS Glue
Auf dieser Seite wird beschrieben, wie Sie AWS Glue Schemas aus CSV-Dateien erstellen, deren Datenwerte für jede Spalte in Anführungszeichen gesetzt sind, oder aus CSV-Dateien, die Header-Werte enthalten.
Umgang mit CSV-Daten in Anführungszeichen
Angenommen, eine CSV-Datei enthält Datenfelder, die in doppelte Anführungszeichen gesetzt sind, wie im folgenden Beispiel.
"John","Doe","123-555-1231","John said \"hello\""
"Jane","Doe","123-555-9876","Jane said \"hello\""
Um in Athena eine Abfrage für eine Tabelle auszuführen, die aus einer CSV-Datei mit Werten in Anführungszeichen erstellt wurde, müssen Sie die Tabelleneigenschaften ändern, AWS Glue um Open CSVSer De zu verwenden. Weitere Hinweise zu OpenCSV SerDe finden Sie unter. CSV SerDe für die Verarbeitung von CSV öffnen
Um Tabelleneigenschaften in der Konsole zu bearbeiten AWS Glue
-
Wählen Sie im Navigationsbereich der AWS Glue Konsole die Option Tabellen aus.
-
Wählen Sie den Link für die Tabelle, die Sie bearbeiten möchten. Wählen Sie dann Action (Aktion), Edit table (Tabelle bearbeiten).
-
Auf der Seite Edit table (Tabelle bearbeiten) nehmen Sie die folgenden Änderungen vor:
-
Geben Sie für Serialization lib (Serialisierungsbibliothek)
org.apache.hadoop.hive.serde2.OpenCSVSerdeein. -
Geben Sie für Serde-Parameter die folgenden Werte für die Schlüssel
escapeChar,quoteCharundseparatorCharein:-
Geben Sie für
escapeChareinen umgekehrten Schrägstrich (\) ein. -
Geben Sie für
quoteCharein doppeltes Anführungszeichen (") ein. -
Geben Sie für
separatorCharein Komma (,) ein.
-
-
-
Wählen Sie Speichern.
Weitere Informationen finden Sie unter Anzeigen und Bearbeiten von Tabellendetails im AWS Glue -Entwicklerhandbuch.
Sie können die AWS Glue Tabelleneigenschaften auch programmgesteuert aktualisieren. Verwenden Sie die AWS Glue UpdateTableAPI-Operation oder den AWS CLI Befehl update-table, um den SerDeInfo Block in der Tabellendefinition zu ändern, wie im folgenden JSON-Beispiel.
"SerDeInfo": {
"name": "",
"serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde",
"parameters": {
"separatorChar": ","
"quoteChar": "\""
"escapeChar": "\\"
}
},
Umgang mit CSV-Dateien mit Kopfzeilen
Wenn Sie eine Tabelle in Athena mit einer CREATE TABLE-Anweisung definieren, können Sie die Tabelleneigenschaft skip.header.line.count verwenden, um Header in Ihren CSV-Daten zu ignorieren, wie im folgenden Beispiel.
... STORED AS TEXTFILE LOCATION 's3://amzn-s3-demo-bucket/csvdata_folder/'; TBLPROPERTIES ("skip.header.line.count"="1")
Alternativ können Sie die CSV-Überschriften vorher entfernen, damit diese Informationen nicht in den Abfrageergebnissen von Athena enthalten sind. Hierfür können Sie beispielsweise AWS Glue -Aufträge zum Extrahieren, Umwandeln und Laden (Extract, Transform, Load; ETL) verwenden. Sie können Skripten in AWS Glue einer Sprache schreiben, die eine Erweiterung des PySpark Python-Dialekts ist. Weitere Informationen finden Sie unter Authoring Jobs in AWS Glue im AWS Glue Developer Guide.
Das folgende Beispiel zeigt eine Funktion in einem AWS Glue Skript, die einen dynamischen Frame ausgibt und die writeHeader Formatoption auf False setzt, wodurch die Header-Informationen entfernt werden: from_options
glueContext.write_dynamic_frame.from_options(frame = applymapping1, connection_type = "s3", connection_options = {"path": "s3://amzn-s3-demo-bucket/MYTABLEDATA/"}, format = "csv", format_options = {"writeHeader": False}, transformation_ctx = "datasink2")