Jawaban singkatnya
- Apache Parquet adalah format data biner berorientasi kolom yang menyimpan tabel dalam grup baris dan blok kolom, dengan keterbacaan bergantung pada dukungan pembaca untuk fitur yang digunakan.
- Pada komputer Windows atau Mac yang memiliki Python dan PyArrow, jalankan import pyarrow.parquet as pq lalu table = pq.read_table('file.parquet'). Gunakan table.to_pandas() untuk membuat DataFrame. Untuk kolom tertentu, gunakan pq.read_table('file.parquet', columns=['nama_kolom']); untuk satu grup baris, gunakan pq.ParquetFile('file.parquet').read_row_group(0). Contoh ini membaca file lokal pada komputer; jika file berada di ponsel, salin ke komputer dan ikuti langkah yang sama.
- Parquet tidak diharapkan memuat konten yang dapat dieksekusi, tetapi dapat menyimpan data apa pun atau informasi sensitif. Implementasi dan konfigurasi pembaca tetap penting: CVE-2025-46762 membahas eksekusi kode pada parquet-avro dengan model specific atau reflect. Model generic tidak terdampak kerentanan tersebut, dan catatannya menyarankan peningkatan ke 1.15.2. Hal ini tidak meniadakan risiko lain. Enkripsi modular dapat menyisakan bagian tanpa enkripsi, dan AES CTR sendiri tidak mengautentikasi data.
File Apache Parquet: membuka, membaca, dan mengonversi
Ekstensi terdaftarnya adalah .parquet dan jenis medianya application/vnd.apache.parquet. Setiap grup baris berisi blok kolom. Metadata dekat akhir file membantu pembaca menemukan blok yang diperlukan; setelahnya terdapat panjang metadata empat byte little-endian dan penanda akhir. File biasa menggunakan PAR1, sedangkan file dengan footer terenkripsi menggunakan PARE. Lihat [penjelasan format resmi](https://parquet.apache.org/docs/file-format/).
Baca file sebagai tabel Arrow, lalu gunakan table.to_pandas() jika memerlukan pandas. Untuk mengonversi Parquet ke CSV, lanjutkan dengan alat yang mendukung ekspor CSV. Periksa hasilnya: informasi tingkat aplikasi, seperti indeks pandas, mungkin tidak dipertahankan. Gunakan pq.write_table(table, 'output.parquet') untuk menulis Parquet. Indeks yang tidak dipertahankan saat membuat tabel Arrow tidak akan pulih ketika Parquet dibaca kembali.
Cara membukanya
Pada komputer Windows atau Mac yang memiliki Python dan PyArrow, jalankan import pyarrow.parquet as pq lalu table = pq.read_table('file.parquet'). Gunakan table.to_pandas() untuk membuat DataFrame. Untuk kolom tertentu, gunakan pq.read_table('file.parquet', columns=['nama_kolom']); untuk satu grup baris, gunakan pq.ParquetFile('file.parquet').read_row_group(0). Contoh ini membaca file lokal pada komputer; jika file berada di ponsel, salin ke komputer dan ikuti langkah yang sama.
Pada komputer Windows atau Mac yang memiliki Python dan PyArrow, jalankan import pyarrow.parquet as pq lalu table = pq.read_table('file.parquet'). Gunakan table.to_pandas() untuk membuat DataFrame. Untuk kolom tertentu, gunakan pq.read_table('file.parquet', columns=['nama_kolom']); untuk satu grup baris, gunakan pq.ParquetFile('file.parquet').read_row_group(0). Contoh ini membaca file lokal pada komputer; jika file berada di ponsel, salin ke komputer dan ikuti langkah yang sama.
Baca file sebagai tabel Arrow, lalu gunakan table.to_pandas() jika memerlukan pandas. Untuk mengonversi Parquet ke CSV, lanjutkan dengan alat yang mendukung ekspor CSV. Periksa hasilnya: informasi tingkat aplikasi, seperti indeks pandas, mungkin tidak dipertahankan. Gunakan pq.write_table(table, 'output.parquet') untuk menulis Parquet. Indeks yang tidak dipertahankan saat membuat tabel Arrow tidak akan pulih ketika Parquet dibaca kembali.
Keamanan file
Parquet tidak diharapkan memuat konten yang dapat dieksekusi, tetapi dapat menyimpan data apa pun atau informasi sensitif. Implementasi dan konfigurasi pembaca tetap penting: CVE-2025-46762 membahas eksekusi kode pada parquet-avro dengan model specific atau reflect. Model generic tidak terdampak kerentanan tersebut, dan catatannya menyarankan peningkatan ke 1.15.2. Hal ini tidak meniadakan risiko lain. Enkripsi modular dapat menyisakan bagian tanpa enkripsi, dan AES CTR sendiri tidak mengautentikasi data.
Pengirim tidak dikenal, nama yang berakhir dengan dua ekstensi, atau isi yang tidak cocok dengan ekstensinya — periksa dulu sebelum dibuka.
Soal konversi
Baca file sebagai tabel Arrow, lalu gunakan table.to_pandas() jika memerlukan pandas. Untuk mengonversi Parquet ke CSV, lanjutkan dengan alat yang mendukung ekspor CSV. Periksa hasilnya: informasi tingkat aplikasi, seperti indeks pandas, mungkin tidak dipertahankan. Gunakan pq.write_table(table, 'output.parquet') untuk menulis Parquet. Indeks yang tidak dipertahankan saat membuat tabel Arrow tidak akan pulih ketika Parquet dibaca kembali.
Konversikan salinannya, jangan file aslinya, lalu bandingkan kualitas, metadata, dan tata letaknya dengan file awal.
Pertanyaan umum
Apa itu file Parquet dan apa kegunaannya?
File Parquet menyimpan data tabel secara biner berdasarkan kolom. Grup baris berisi blok kolom sehingga pembaca yang kompatibel dapat mengambil hanya kolom yang diperlukan.
Bagaimana cara membaca file Parquet dengan Python?
Dengan PyArrow tersedia, jalankan import pyarrow.parquet as pq dan table = pq.read_table('file.parquet'). Hasilnya berupa tabel Arrow; table.to_pandas() mengubahnya menjadi DataFrame pandas.
Bagaimana cara membuka file Parquet di Windows?
Dalam lingkungan Python di Windows yang memiliki PyArrow, gunakan pyarrow.parquet.read_table('file.parquet'). Gunakan to_pandas() bila memerlukan DataFrame. Pembaca harus mendukung fitur yang digunakan file tersebut.
Bagaimana cara membuka file Parquet di Mac?
Dalam lingkungan Python di Mac yang memiliki PyArrow, gunakan pyarrow.parquet.read_table('file.parquet'). Tambahkan columns=['nama_kolom'] untuk memilih kolom. Pastikan pembaca mendukung fitur file yang digunakan.
Bagaimana cara membuka file Parquet di ponsel?
Salin file dari ponsel ke komputer, lalu baca dengan Python dan PyArrow menggunakan pyarrow.parquet.read_table('file.parquet'). Tidak ada aplikasi ponsel tertentu yang direkomendasikan di sini.
Bagaimana mengatasi galat kompatibilitas saat membaca Parquet?
Periksa dukungan pembaca untuk pengodean yang digunakan dan Data Page V2. Pembaca lama dapat gagal mengurai fitur yang tidak didukung. Tipe logis yang tidak dikenali bisa dikembalikan sebagai tipe fisik dasarnya. Gunakan pembaca yang mendukung fitur tersebut.
Sebaiknya membaca seluruh tabel Parquet atau hanya kolom tertentu?
Baca seluruh tabel jika semua kolom diperlukan. Untuk bidang tertentu, gunakan argumen columns pada PyArrow. Membaca grup baris satu per satu juga dapat menghindari pembacaan seluruh tabel setiap kali.
Bagaimana cara mengonversi Parquet ke CSV?
Baca Parquet dengan PyArrow dan, bila perlu, ubah tabel dengan to_pandas(). Kemudian ekspor melalui alat yang mendukung CSV. Periksa hasilnya: informasi tingkat aplikasi, seperti indeks pandas, mungkin tidak dipertahankan.
Mengapa ada indeks hilang dari Parquet ke pandas setelah disimpan dan dibaca?
Jika indeks pandas asli tidak dipertahankan saat tabel Arrow dibuat, penulisan dan pembacaan Parquet tidak akan memulihkannya. Periksa pengaturan pemeliharaan indeks sebelum menyimpan dan bandingkan DataFrame hasil pembacaan dengan aslinya.
Apakah file Parquet aman dibuka?
Ekstensi saja tidak membuktikan keamanan. File dapat memuat data sensitif dan pembaca dapat memiliki kerentanan. CVE-2025-46762 memengaruhi mode specific dan reflect pada parquet-avro serta menyarankan peningkatan ke 1.15.2. Mode generic tidak terdampak kerentanan khusus tersebut.
Apa yang perlu diperiksa sebelum membaca file Parquet terenkripsi?
Pastikan pembaca mendukung fitur enkripsi yang digunakan. Enkripsi modular dapat melindungi kolom dan footer secara terpisah sambil membiarkan bagian lain tanpa enkripsi. AES CTR sendiri tidak menyediakan autentikasi, sehingga enkripsi tidak selalu berarti perlindungan integritas lengkap.
Format terkait
Sumber
IANA — application/vnd.apache.parquet · IANA 官方媒体类型登记
Apache Parquet — File Format · Apache Parquet 官方格式文档
Apache Arrow — Reading and Writing Single Files · Apache Arrow 官方使用文档
Apache Parquet — Parquet format versions · Apache Parquet 官方兼容性文档
CVE-2025-46762 · CVE 官方漏洞记录;分配机构为 Apache Software Foundation
Apache Parquet — Modular Encryption · Apache Parquet 官方加密规范