Arbeiten Sie mit CSV-Daten in AWS Glue - Amazon Athena

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
  1. Wählen Sie im Navigationsbereich der AWS Glue Konsole die Option Tabellen aus.

  2. Wählen Sie den Link für die Tabelle, die Sie bearbeiten möchten. Wählen Sie dann Action (Aktion), Edit table (Tabelle bearbeiten).

  3. 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.OpenCSVSerde ein.

    • Geben Sie für Serde-Parameter die folgenden Werte für die Schlüssel escapeChar, quoteChar und separatorChar ein:

      • Geben Sie für escapeChar einen umgekehrten Schrägstrich (\) ein.

      • Geben Sie für quoteChar ein doppeltes Anführungszeichen (") ein.

      • Geben Sie für separatorChar ein Komma (,) ein.

  4. 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")