Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan S3 Select dengan Spark untuk meningkatkan kinerja kueri
penting
Amazon S3 Select tidak lagi tersedia untuk pelanggan baru. Pelanggan Amazon S3 Select yang sudah ada dapat terus menggunakan fitur seperti biasa. Pelajari selengkapnya
Dengan Amazon EMR rilis 5.17.0 dan yang lebih baru, Anda dapat menggunakan S3 Select dengan Spark
S3 Select didukung dengan file CSV dan JSON menggunakan s3selectCSV
dan s3selectJSON
nilai untuk menentukan format data. Untuk informasi selengkapnya dan contoh tambahan, lihat Tentukan S3 Pilih dalam kode Anda.
Apakah S3 Select tepat untuk aplikasi saya?
Kami menyarankan Anda membuat tolok ukur aplikasi dengan dan tanpa S3 Select untuk melihat apakah cocok dengan aplikasi Anda.
Gunakan panduan berikut untuk menentukan apakah aplikasi Anda adalah kandidat untuk menggunakan S3 Pilih:
-
Permintaan Anda menyaring lebih dari setengah dari kumpulan data asli.
-
Koneksi jaringan Anda antara Amazon S3 dan cluster Amazon EMR memiliki kecepatan transfer yang baik dan bandwidth yang tersedia. Amazon S3 tidak memampatkan tanggapan HTTP, sehingga ukuran respon kemungkinan akan meningkatkan file input terkompresi.
Pertimbangan dan batasan
-
Enkripsi sisi server Amazon S3 dengan kunci enkripsi yang disediakan pelanggan (SSE-C) dan enkripsi di sisi klien tidak didukung.
-
Properti
AllowQuotedRecordDelimiters
tidak didukung. Jika properti ini ditentukan, kueri akan gagal. -
Hanya file CSV dan JSON dalam format UTF-8 yang didukung. Multi-line CSVs tidak didukung.
-
Hanya file yang tidak terkompresi atau gzip yang didukung.
-
Spark CSV dan JSON pilihan seperti
nanValue
,positiveInf
,negativeInf
, dan pilihan yang berkaitan dengan catatan korup (misalnya, failfast dan dropmalformed mode) tidak didukung. -
Menggunakan koma (,) dalam desimal tidak didukung. Misalnya,
10,000
tidak didukung dan10000
didukung. -
Komentar karakter di baris terakhir tidak didukung.
-
Baris kosong di akhir file tidak diproses.
-
Filter berikut tidak didorong ke Amazon S3:
-
Fungsi agregat seperti
COUNT()
danSUM()
. -
Filter yang
CAST()
atribut. Misalnya,CAST(stringColumn as INT) = 1
. -
Filter dengan atribut yang merupakan objek atau kompleks. Misalnya,
intArray[1] = 1, objectColumn.objectNumber = 1
. -
Filter yang nilainya bukan nilai literal. Sebagai contoh,
intColumn1 = intColumn2
. -
Hanya S3 Pilih tipe data yang didukung didukung dengan keterbatasan yang didokumentasikan.
-
Tentukan S3 Pilih dalam kode Anda
Contoh berikut menunjukkan cara menentukan S3 Select untuk CSV menggunakan Scala, SQL, R, dan. PySpark Anda dapat menggunakan S3 Pilih untuk JSON dengan cara yang sama. Untuk daftar pilihan, nilai default, dan keterbatasan, lihat Opsi.
spark .read .format("
s3selectCSV
") // "s3selectJson" for Json .schema(...) // optional, but recommended .options(...) // optional .load("s3://path/to/my/datafiles
")
Opsi
Pilihan berikut tersedia saat menggunakan s3selectCSV
dan s3selectJSON
. Jika tidak ditentukan, nilai default digunakan.
Pilihan dengan S3selectCSV
Opsi | Default | Penggunaan |
---|---|---|
|
|
Menunjukkan apakah kompresi digunakan. |
|
"," |
Menentukan bidang pembatas. |
|
|
Menentukan karakter kutipan. Menentukan string kosong tidak didukung dan menghasilkan kesalahan XML yang salah. |
|
|
Menentukan karakter escape. |
|
|
|
komentar |
|
Menentukan karakter komentar. Indikator komentar tidak dapat dinonaktifkan. Dengan kata lain, nilai |
|
"" |
Pilihan dengan S3selectJSON
Opsi | Default | Penggunaan |
---|---|---|
|
|
Menunjukkan apakah kompresi digunakan. |
|
"salah" |
|