Bekerja dengan CSV data di AWS Glue - Amazon Athena

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

Bekerja dengan CSV data di AWS Glue

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

Penanganan CSV data terlampir dalam tanda kutip

Misalkan CSV file memiliki bidang data tertutup 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 CSV file yang memiliki nilai kutipan, Anda harus memodifikasi properti tabel AWS Glue untuk menggunakan O De. penCSVSer Untuk informasi lebih lanjut tentang Buka CSV SerDe, lihatTerbuka CSV SerDe untuk diproses CSV.

Untuk mengedit properti tabel di AWS Glue konsol
  1. Di panel navigasi AWS Glue konsol, pilih Tabel.

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

  3. Pada halaman Edit tabel, buat perubahan berikut:

    • Untuk Serialisasi lib, masukkan. org.apache.hadoop.hive.serde2.OpenCSVSerde

    • UntukParameter serde, masukkan nilai berikut untuk kunciescapeChar,quoteChar, danseparatorChar:

      • UntukescapeChar, masukkan garis miring terbalik (\).

      • UntukquoteChar, masukkan kutipan ganda (").

      • UntukseparatorChar, masukkan koma (,).

  4. Pilih Simpan.

Untuk informasi selengkapnya, lihat Melihat dan mengedit detail tabel di Panduan AWS Glue Pengembang.

Anda juga dapat memperbarui properti AWS Glue tabel secara terprogram. Gunakan AWS Glue UpdateTableAPIoperasi atau AWS CLI perintah update-table untuk memodifikasi SerDeInfo blok dalam definisi tabel, seperti pada contoh berikut. JSON

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

Menangani CSV file dengan header

Bila Anda mendefinisikan tabel di Athena dengan CREATE TABLE pernyataan, Anda dapat menggunakan properti skip.header.line.count tabel untuk mengabaikan header dalam CSV data Anda, seperti pada contoh berikut.

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

Atau, Anda dapat menghapus CSV header terlebih dahulu sehingga informasi header tidak termasuk dalam hasil kueri Athena. Salah satu cara untuk mencapai ini adalah dengan menggunakan AWS Glue pekerjaan, yang melakukan pekerjaan ekstrak, transformasi, dan beban (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 di Panduan AWS Glue Pengembang.

Contoh berikut menunjukkan fungsi dalam AWS Glue skrip yang menulis frame dinamis menggunakanfrom_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")