

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bekerja dengan data CSV di AWS Glue
<a name="schema-csv"></a>

Halaman ini menjelaskan AWS Glue cara menggunakan skema dari file CSV yang memiliki tanda kutip di sekitar nilai data untuk setiap kolom atau dari file CSV yang menyertakan nilai header.

## Menangani data CSV terlampir dalam tanda kutip
<a name="schema-csv-quotes"></a>

Misalkan file CSV memiliki bidang data yang diapit tanda kutip ganda, seperti pada contoh berikut.

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

Untuk menjalankan kueri di Athena pada tabel yang dibuat dari file CSV yang memiliki nilai kutipan, Anda harus memodifikasi properti tabel AWS Glue untuk menggunakan Open De. CSVSer Untuk informasi selengkapnya tentang SerDe OpenCSV, lihat. [Buka CSV SerDe untuk memproses CSV](csv-serde.md)

**Untuk mengedit properti tabel di AWS Glue konsol**

1. Di panel navigasi AWS Glue konsol, pilih **Tabel**.

1. Pilih tautan untuk tabel yang ingin Anda edit, lalu pilih **Tindakan**, **Edit tabel**.

1. Pada halaman **Edit tabel**, buat perubahan berikut:
   + Untuk **Serialisasi lib, masukkan**. `org.apache.hadoop.hive.serde2.OpenCSVSerde`
   + Untuk**Parameter serde**, masukkan nilai berikut untuk kunci`escapeChar`,`quoteChar`, dan`separatorChar`: 
     + Untuk`escapeChar`, masukkan garis miring terbalik (**\$1**).
     + Untuk`quoteChar`, masukkan kutipan ganda (**"**).
     + Untuk`separatorChar`, masukkan koma (**,**).

1. Pilih **Simpan**.

Untuk informasi selengkapnya, lihat [Melihat dan mengedit detail tabel](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html#console-tables-details) di *Panduan AWS Glue Pengembang*.

Anda juga dapat memperbarui properti AWS Glue tabel secara terprogram. Gunakan operasi AWS Glue [UpdateTable](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateTable.html)API atau AWS CLI perintah [update-table](https://docs.aws.amazon.com/cli/latest/reference/glue/update-table.html) untuk memodifikasi `SerDeInfo` blok dalam definisi tabel, seperti pada contoh JSON berikut.

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

## Menangani file CSV dengan header
<a name="schema-csv-headers"></a>

Jika Anda menentukan tabel di Athena dengan`CREATE TABLE`pernyataan, Anda dapat menggunakan`skip.header.line.count`untuk mengabaikan header dalam data CSV Anda, seperti dalam contoh berikut.

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

Atau, Anda dapat menghapus header CSV terlebih dahulu sehingga informasi header tidak termasuk dalam hasil permintaan Athena. Salah satu cara untuk mencapainya adalah dengan menggunakan tugas AWS Glue , yang melakukan pekerjaan extract, transform, and load (ETL). Anda dapat menulis skrip dalam AWS Glue menggunakan bahasa yang merupakan perpanjangan dari dialek PySpark Python. Untuk informasi selengkapnya, lihat [Menulis Pekerjaan di AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/author-job-glue.html) di *Panduan AWS Glue Pengembang*.

Contoh berikut menunjukkan fungsi dalam AWS Glue skrip yang menulis frame dinamis menggunakan`from_options`, dan menetapkan opsi `writeHeader` format ke false, yang menghapus informasi header:

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