

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 dati CSV in AWS Glue
<a name="schema-csv"></a>

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

## Gestire dati CSV tra virgolette
<a name="schema-csv-quotes"></a>

Immaginiamo di avere un file CSV che dispone di campi 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 una query in Athena su una tabella creata da un file CSV contenente valori tra virgolette, è necessario modificare le proprietà della tabella in AWS Glue modo da utilizzare Open De. CSVSer Per ulteriori informazioni su OpenCSV SerDe, vedere. [Apri CSV SerDe per l'elaborazione di CSV](csv-serde.md)

**Per modificare le proprietà delle tabelle nella console AWS Glue**

1. Nel riquadro di navigazione della AWS Glue console, scegli **Tabelle**.

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

1. 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 (**,**).

1. Scegli **Save** (Salva).

Per ulteriori informazioni, consulta la sezione relativa alla [visualizzazione e modifica dei dettagli tabella](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html#console-tables-details) nella *Guida per sviluppatori AWS Glue *.

Puoi anche aggiornare le proprietà AWS Glue delle tabelle a livello di codice. Utilizzate l'operazione AWS Glue [UpdateTable](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateTable.html)API o il AWS CLI comando [update-table](https://docs.aws.amazon.com/cli/latest/reference/glue/update-table.html) per modificare il `SerDeInfo` blocco nella definizione della tabella, come nel seguente esempio JSON.

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

## Gestione dei file CSV con intestazioni
<a name="schema-csv-headers"></a>

Quando definisci una tabella in Athena con un'istruzione `CREATE TABLE`, puoi utilizzare la proprietà tabella `skip.header.line.count` per ignorare gli header nei dati CSV, come nell'esempio seguente.

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

In alternativa, puoi rimuovere gli header CSV in anticipo in modo che le informazioni degli header non siano incluse nei risultati delle query di Athena di Athena. Un metodo per procedere è utilizzare i processi AWS Glue che eseguono le 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](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html) 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")
```