Lavora con CSV i dati in AWS Glue - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Lavora con CSV i dati in AWS Glue

Questa pagina descrive come creare uno schema da CSV file che contengono virgolette attorno ai valori dei dati per ogni colonna o da CSV file che includono valori di intestazione. AWS Glue

Gestione dei CSV dati racchiusi tra virgolette

Supponiamo che un CSV file contenga campi di dati racchiusi tra virgolette doppie, come nell'esempio seguente.

"John","Doe","123-555-1231","John said \"hello\"" "Jane","Doe","123-555-9876","Jane said \"hello\""

Per eseguire un'interrogazione in Athena su una tabella creata da un CSV file che contiene valori tra virgolette, è necessario modificare le proprietà della tabella in AWS Glue modo da utilizzare O De. penCSVSer Per ulteriori informazioni sull'Open CSV SerDe, vedere. Aperto CSV SerDe per l'elaborazione CSV

Per modificare le proprietà delle tabelle nella AWS Glue console
  1. Nel riquadro di navigazione della AWS Glue console, scegli Tabelle.

  2. Scegli il collegamento per la tabella che desideri modificare, quindi scegli Actions (Operazioni), Edit table details (Modifica tabella).

  3. Nella pagina Edit table (Modifica tabella), apporta le modifiche seguenti:

    • Per Serialization lib (Libreria serializzazione), inserisci org.apache.hadoop.hive.serde2.OpenCSVSerde.

    • Per Parametri Serde, inserisci i seguenti valori per le chiavi escapeChar, quoteChar e separatorChar:

      • Per escapeChar, inserire una barra rovesciata (\).

      • Per quoteChar, inserire una virgoletta doppia (").

      • Per separatorChar, inserire una virgola (,).

  4. Seleziona Salva.

Per ulteriori informazioni, consulta la sezione relativa alla visualizzazione e modifica dei dettagli tabella nella Guida per sviluppatori AWS Glue .

Puoi anche aggiornare le proprietà AWS Glue delle tabelle a livello di codice. Utilizzate l' AWS Glue UpdateTableAPIoperazione o il AWS CLI comando update-table per modificare il SerDeInfo blocco nella definizione della tabella, come nell'esempio seguente. JSON

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

Gestione dei CSV file con intestazioni

Quando si definisce una tabella in Athena con un'CREATE TABLEistruzione, è possibile utilizzare la proprietà skip.header.line.count table per ignorare le intestazioni nei CSV dati, come nell'esempio seguente.

... STORED AS TEXTFILE LOCATION 's3://amzn-s3-demo-bucket/csvdata_folder/'; TBLPROPERTIES ("skip.header.line.count"="1")

In alternativa, è possibile rimuovere preventivamente le CSV intestazioni in modo che le informazioni sull'intestazione non vengano incluse nei risultati delle query Athena. Un modo per raggiungere questo obiettivo è utilizzare i AWS Glue job, che eseguono operazioni di estrazione, trasformazione e caricamento (). ETL È possibile scrivere script AWS Glue utilizzando un linguaggio che è un'estensione del dialetto PySpark Python. Per ulteriori informazioni, consulta Authoring Jobs in AWS Glue nella AWS Glue Developer Guide.

L'esempio seguente mostra una funzione in AWS Glue uno script che scrive un frame dinamico utilizzando from_options e imposta l'opzione writeHeader format su false, che rimuove le informazioni di intestazione:

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