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 in Anführungszeichen eingeschlossenen CSV Daten

Angenommen, eine CSV Datei enthält Datenfelder in doppelten Anführungszeichen, 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 erstellt wurde, die Werte in Anführungszeichen enthält, müssen Sie die Tabelleneigenschaften ändern, AWS Glue um O penCSVSer De zu verwenden. Weitere Hinweise zu Open finden Sie CSV SerDe unterCSV SerDe Zur Bearbeitung geöffnet CSV.

So bearbeiten Sie Tabelleneigenschaften in der AWS Glue Konsole
  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 Save (Speichern) aus.

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 UpdateTableAPIOperation oder den AWS CLI Befehl update-table, um den SerDeInfo Block in der Tabellendefinition zu ändern, wie im folgenden Beispiel gezeigt. JSON

"SerDeInfo": { "name": "", "serializationLib": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "parameters": { "separatorChar": "," "quoteChar": "\"" "escapeChar": "\\" } },

Umgang mit CSV Dateien mit Headern

Wenn Sie in Athena eine Tabelle mit einer CREATE TABLE Anweisung definieren, können Sie die skip.header.line.count Tabelleneigenschaft verwenden, um Überschriften 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 Header vorher entfernen, sodass die Header-Informationen nicht in den Athena-Abfrageergebnissen enthalten sind. Eine Möglichkeit, dies zu erreichen, besteht darin, AWS Glue Jobs zu verwenden, die Extraktions-, Transformations- und Load (ETL) -Aufgaben ausführen. 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")