Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan format CSV di AWS Glue
AWSGlue mengambil data dari sumber dan menulis data ke target yang disimpan dan diangkut dalam berbagai format data. Jika data Anda disimpan atau diangkut dalam format data CSV, dokumen ini memperkenalkan fitur yang tersedia untuk menggunakan data Anda di Glue. AWS
AWSGlue mendukung penggunaan format comma-separated value (CSV). Format ini adalah format data berbasis baris minimal. CSV sering tidak sepenuhnya sesuai dengan standar, tetapi Anda dapat merujuk ke RFC 4180 dan RFC
Anda dapat menggunakan AWS Glue untuk membaca CSV dari Amazon S3 dan dari sumber streaming serta menulis CSV ke Amazon S3. Anda dapat membaca dan menulis bzip
dan gzip
mengarsipkan yang berisi file CSV dari S3. Anda mengonfigurasi perilaku kompresi pada Parameter koneksi S3 alih-alih dalam konfigurasi yang dibahas di halaman ini.
Tabel berikut menunjukkan fitur AWS Glue umum mana yang mendukung opsi format CSV.
Baca | Tulis | Streaming dibaca | Kelompokkan file kecil | Bookmark tugas |
---|---|---|---|---|
Didukung | Didukung | Didukung | Didukung | Didukung |
Contoh: Baca file CSV atau folder dari S3
Prasyarat: Anda akan memerlukan jalur S3 (s3path
) ke file CSV atau folder yang ingin Anda baca.
Konfigurasi: Dalam opsi fungsi Anda, tentukanformat="csv"
. Dalam Andaconnection_options
, gunakan paths
kunci untuk menentukans3path
. Anda dapat mengonfigurasi bagaimana pembaca berinteraksi dengan S3 di. connection_options
Untuk detailnya, lihat Jenis dan opsi koneksi untuk ETL di AWS Glue:Parameter koneksi S3. Anda dapat mengonfigurasi bagaimana pembaca menafsirkan file CSV di file Anda. format_options
Untuk detailnya, lihat Referensi Konfigurasi CSV.
Skrip AWS Glue ETL berikut menunjukkan proses membaca file CSV atau folder dari S3.
Kami menyediakan pembaca CSV kustom dengan pengoptimalan kinerja untuk alur kerja umum melalui kunci konfigurasi. optimizePerformance
Untuk menentukan apakah pembaca ini tepat untuk beban kerja Anda, lihatOptimalkan kinerja baca dengan pembaca SIMD CSV vektor.
Contoh: Tulis file dan folder CSV ke S3
Prasyarat: Anda akan memerlukan initialized DataFrame (dataFrame
) atau a (). DynamicFrame dynamicFrame
Anda juga akan membutuhkan jalur output S3 yang Anda harapkan,s3path
.
Konfigurasi: Dalam opsi fungsi Anda, tentukanformat="csv"
. Dalam Andaconnection_options
, gunakan paths
kunci untuk menentukans3path
. Anda dapat mengonfigurasi bagaimana penulis berinteraksi dengan S3 di. connection_options
Untuk detailnya, lihat Jenis dan opsi koneksi untuk ETL di AWS Glue:Parameter koneksi S3. Anda dapat mengonfigurasi bagaimana operasi Anda menulis konten file Andaformat_options
. Untuk detailnya, lihat Referensi Konfigurasi CSV. Skrip AWS Glue ETL berikut menunjukkan proses penulisan file CSV dan folder ke S3.
Referensi konfigurasi CSV
Anda dapat menggunakan yang berikut ini di format_options
mana pun pustaka AWS Glue menentukanformat="csv"
:
-
separator
—Menentukan karakter pembatas. Defaultnya adalah koma, tetapi karakter lain dapat ditentukan.-
Jenis: Teks, Default:
","
-
-
escaper
- Menentukan karakter yang akan digunakan untuk melarikan diri. Opsi ini hanya digunakan saat membaca file CSV, bukan menulis. Jika diaktifkan, karakter yang segera mengikuti digunakan apa adanya, kecuali untuk satu set kecil pelarian terkenal (\n
,,\r
\t
, dan\0
).-
Jenis: Teks, Default: tidak ada
-
-
quoteChar
- Menentukan karakter yang akan digunakan untuk mengutip. Defaultnya adalah kutipan ganda. Atur ini ke-1
untuk menonaktifkan pengutipan seluruhnya.-
Jenis: Teks, Default:
'"'
-
-
multiLine
- Menentukan apakah catatan tunggal dapat menjangkau beberapa baris. Hal ini dapat terjadi ketika bidang berisi karakter baris baru yang dikutip. Anda harus menetapkan opsi ini keTrue
jika ada catatan yang mencakup beberapa baris. MengaktifkanmultiLine
dapat menurunkan kinerja karena membutuhkan pemisahan file yang lebih hati-hati saat mengurai.-
Jenis: Boolean, Default:
false
-
-
withHeader
- Menentukan apakah untuk memperlakukan baris pertama sebagai header. Opsi ini dapat digunakan dalam kelasDynamicFrameReader
.-
Jenis: Boolean, Default:
false
-
-
writeHeader
- Menentukan apakah akan menulis header untuk output. Opsi ini dapat digunakan dalam kelasDynamicFrameWriter
.-
Jenis: Boolean, Default:
true
-
-
skipFirst
- Menentukan apakah akan melewati baris data pertama.-
Jenis: Boolean, Default:
false
-
-
optimizePerformance
— Menentukan apakah akan menggunakan pembaca CSV SIMD canggih bersama dengan format memori kolumnar berbasis Apache Arrow. Hanya tersedia dalam AWS Glue 3.0+.-
Jenis: Boolean, Default:
false
-
-
strictCheckForQuoting
— Saat menulis CSV, Glue dapat menambahkan tanda kutip ke nilai yang ditafsirkan sebagai string. Ini dilakukan untuk mencegah ambiguitas dalam apa yang tertulis. Untuk menghemat waktu ketika memutuskan apa yang akan ditulis, Glue dapat mengutip dalam situasi tertentu di mana kutipan tidak diperlukan. Mengaktifkan pemeriksaan ketat akan melakukan perhitungan yang lebih intensif dan hanya akan mengutip jika benar-benar diperlukan. Hanya tersedia dalam AWS Glue 3.0+.-
Jenis: Boolean, Default:
false
-
Optimalkan kinerja baca dengan pembaca SIMD CSV vektor
AWS Glueversi 3.0 menambahkan pembaca CSV yang dioptimalkan yang secara signifikan dapat mempercepat kinerja pekerjaan secara keseluruhan dibandingkan dengan pembaca CSV berbasis baris.
Pembaca yang dioptimalkan:
-
Menggunakan instruksi CPU SIMD untuk membaca dari disk
-
Segera menulis catatan ke memori dalam format kolom (Apache Arrow)
-
Membagi catatan menjadi batch
Ini menghemat waktu pemrosesan ketika catatan akan di-batch atau dikonversi ke format kolumnar nanti. Beberapa contoh adalah ketika mengubah skema atau mengambil data berdasarkan kolom.
Untuk menggunakan pembaca yang dioptimalkan, atur "optimizePerformance"
ke true
dalam properti format_options
or table.
glueContext.create_dynamic_frame.from_options( frame = datasource1, connection_type = "s3", connection_options = {"paths": ["s3://s3path"]}, format = "csv", format_options={ "optimizePerformance": True, "separator": "," }, transformation_ctx = "datasink2")
Keterbatasan untuk pembaca CSV vektor
Perhatikan batasan berikut dari pembaca CSV vektor:
-
Itu tidak mendukung opsi
multiLine
danescaper
format. Ini menggunakan defaultescaper
karakter kutipan ganda.'"'
Ketika opsi ini disetel, AWS Glue secara otomatis kembali menggunakan pembaca CSV berbasis baris. -
Itu tidak mendukung pembuatan DynamicFrame dengan ChoiceType.
-
Itu tidak mendukung pembuatan catatan kesalahan DynamicFrame dengan.
-
Itu tidak mendukung membaca file CSV dengan karakter multibyte seperti karakter Jepang atau China.