Langsung ke alat
ViewCSV
File tidak diunggah

Konversi CSV ke Parquet

orders.csv· DATA CONTOH15 baris · 8 kolom
Tipe nilai
Kolom teks ditulis sebagai UTF-8 STRING. Deteksi menulis kolom INT64, DOUBLE, dan BOOLEAN jika semua nilainya cocok.
orders.csv
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041Budi LestariJakartaDesk lamp1204.832026-01-19shipped
2001042Andi WijayaBandungDesk lamp1139.942026-02-26refunded
3001043Siti SaputraMedanChair, ergonomic3128.522026-03-01pending
4001044Rizky KurniawanMedanCoffee beans 1kg4229.712026-04-27refunded
5001045Rizky LestariJakartaMonitor 27"8·2026-05-09pending
6001046Fajar GunawanBandungMonitor 27"4221.252026-06-20refunded
7001047 Fajar Saputra YogyakartaUSB-C cable322.402026-07-04refunded
8001048Rizky WijayaBandungMonitor 27"2157.072026-08-11refunded
9001049Andi LestariYogyakartaCoffee beans 1kg2219.182026-09-10shipped
10001050Nur HalimMedanUSB-C cable1210.972026-01-15refunded
11001051Putri HalimMedanUSB-C cable8136.072026-02-25shipped
12001052Rizky HidayatDenpasarDesk lamp39.422026-03-05refunded
13001053Budi KurniawanBandungNotebook A55174.882026-04-25pending
14001054Putri KurniawanBandungDesk lamp2103.842026-05-15paid
15001043Siti SaputraMedanChair, ergonomic3128.522026-03-01pending

15 baris · 1 file Ditulis di browser Anda dengan penulis Parquet berbasis JavaScript; tidak ada yang diunggah.

Buka atau tempel file CSV lalu pilih Unduh Parquet. Secara bawaan setiap kolom berupa STRING UTF-8 yang boleh null, jadi ID seperti 000917 tetap dengan nol di depannya, dan sel kosong menjadi null. Pilih Deteksi angka dan true/false untuk menulis kolom INT64, DOUBLE, dan BOOLEAN jika semua nilainya cocok. File ditulis di browser Anda oleh penulis Parquet berbasis JavaScript; tidak ada yang diunggah.

Cara mengonversi CSV ke Parquet

  1. Buka file .csv, .tsv, atau .txt, seret ke alat ini, atau tempel barisnya. Periksa tabel di Masukan; jika perlu, atur pemisah, baris judul kolom, atau pengodean di Pengaturan impor.
  2. Pilih Tipe nilai, Kompresi, apakah akan memakai Tulis teks kosong sebagai null, dan Baris per row group.
  3. Pilih Unduh Parquet, lalu baca file .parquet dengan DuckDB, pandas, Polars, Spark, atau pembaca Parquet lainnya.

Untuk mengonversi banyak file dengan pengaturan yang sama, pilih Batch: konversi beberapa file. Setiap file menjadi file Parquet sendiri, dan semuanya diunduh bersama dalam satu ZIP. Dalam mode batch, setiap file harus berukuran 25 MB atau kurang.

Skema dan tipe kolom

Nama kolom diambil dari baris judul kolom persis seperti tertulis. Judul kolom yang kosong menjadi Column 3 dan yang berulang menjadi name (2), sehingga setiap kolom Parquet punya nama yang unik. Setiap kolom bersifat opsional (boleh null).

Simpan semua nilai sebagai teksPilihan bawaan. Setiap kolom berupa BYTE_ARRAY dengan anotasi string UTF-8, yang menyimpan setiap nilai byte demi byte, termasuk angka nol di depan, 1,5, N/A, dan berbagai format tanggal.
Bilangan bulat (dengan deteksi)INT64 jika setiap nilai yang tidak kosong berupa bilangan bulat tanpa nol di depan, dari −9.007.199.254.740.991 sampai 9.007.199.254.740.991. Bilangan bulat yang lebih besar membuat kolom tetap teks.
Desimal (dengan deteksi)DOUBLE jika setiap nilai berupa desimal biasa dengan maksimal 15 digit signifikan, sehingga tetap utuh setelah dikonversi. Kolom yang mencampur 12 dan 2.5 menjadi DOUBLE.
true / false (dengan deteksi)BOOLEAN jika setiap nilainya true atau false dengan huruf besar/kecil apa pun.
Tanggal dan timestampTetap STRING di kedua mode, misalnya 2026-03-01T08:00:00Z. Ubah tipenya di query engine Anda, misalnya CAST(reading_at AS TIMESTAMP) di DuckDB.

Di kolom bertipe, sel kosong selalu menjadi null. Di kolom string, Tulis teks kosong sebagai null (aktif secara bawaan) menentukan apakah sel kosong menjadi null atau string kosong "".

Kompresi dan row group

Snappy (cepat, bawaan umum)Codec bawaan. Didukung oleh semua pembaca Parquet yang umum.
Gzip (lebih kecil)Biasanya menghasilkan file yang lebih kecil daripada Snappy. Sebagian pembaca ringan tidak menyertakan dukungan gzip.
TanpaTanpa kompresi, untuk debugging atau untuk alat yang tidak punya dekompresor.
Baris per row groupBawaan 100.000, antara 1.000 dan 1.000.000. Karena ruang kerja browser menampung hingga 100.000 baris, nilai bawaan menghasilkan satu row group; isi nilai yang lebih kecil untuk mendapatkan beberapa row group yang bisa dilewati atau dibaca paralel oleh pembaca.

File juga mencatat penulisnya (hyparquet) dan kunci created_by_app di metadatanya.

Masalah umum saat mengonversi CSV ke Parquet

  • Kolom angka bertipe STRING. Entah Simpan semua nilai sebagai teks yang dipilih, atau ada satu nilai yang bukan angka biasa, seperti 1,234, 12 kg, 007, atau desimal 16 digit. Temukan nilainya dengan profil kolom atau penampil CSV.
  • ID kehilangan angka nol di depannya di alat lain. Konverter ini tidak pernah menjadikan kolom bernol di depan sebagai angka. Jika ID-nya berubah, kemungkinan CSV sudah dibuka dan disimpan di spreadsheet sebelum dikonversi; periksa file sumbernya di penampil CSV.
  • Semua data ada di satu kolom. Pemisahnya salah ditebak; pilih di Pengaturan impor.
  • File terlalu besar untuk alat ini. Konversi ke Parquet berlaku untuk file hingga 25 MB, 100.000 baris, 250 kolom, dan 2 juta sel. Pecah CSV-nya lalu konversikan bagian-bagiannya, atau kompres CSV-nya dengan gzip jika Anda hanya butuh unduhan yang lebih kecil.

Batas dan privasi

CSV harus bisa dibuka di ruang kerja browser: hingga 25 MB, 100.000 baris, 250 kolom, dan 2 juta sel. File Parquet dibuat di memori dalam sekali jalan.

Penulisnya adalah hyparquet-writer, pustaka JavaScript murni yang hanya dimuat saat Anda mengonversi; tidak ada WebAssembly maupun langkah di server. Penulis ini berjalan di worker latar belakang pada tab ini, jadi halaman tetap responsif dan Batal bisa menghentikannya. File CSV tidak pernah dikirim ke server. Untuk file database yang bisa di-query, gunakan CSV ke SQLite.

Contoh: data sensor dibaca kembali dengan PyArrow

Data pembacaan sensor dengan ID bernol di depan, timestamp ISO, sel kosong, dan koma bertanda kutip, dikonversi dengan Deteksi angka dan true/false dan kompresi bawaan Snappy, lalu dibaca kembali dengan PyArrow. temp_c menjadi DOUBLE dan ok menjadi BOOLEAN; sensor_id dan reading_at tetap string. Dengan pilihan bawaan Simpan semua nilai sebagai teks, kelima kolom bertipe string dan ok tetap TRUE seperti tertulis.

CSV
sensor_id,reading_at,temp_c,ok,site
000917,2026-03-01T08:00:00Z,21.5,true,Lab 2
000918,2026-03-01T08:05:00Z,,false,
000919,2026-03-01T08:10:00Z,-3,TRUE,"Roof, north"
Parquet (dibaca dengan PyArrow)
schema:
  sensor_id: string
  reading_at: string
  temp_c: double
  ok: bool
  site: string
rows: 3, row groups: 1, compression: SNAPPY

{'sensor_id': '000917', 'reading_at': '2026-03-01T08:00:00Z', 'temp_c': 21.5, 'ok': True, 'site': 'Lab 2'}
{'sensor_id': '000918', 'reading_at': '2026-03-01T08:05:00Z', 'temp_c': None, 'ok': False, 'site': None}
{'sensor_id': '000919', 'reading_at': '2026-03-01T08:10:00Z', 'temp_c': -3.0, 'ok': True, 'site': 'Roof, north'}

Tanya jawab

Apakah CSV saya diunggah untuk dikonversi?

Tidak. File Parquet ditulis oleh pustaka JavaScript di worker pada tab browser Anda, dan unduhannya dibuat secara lokal.

Mengapa tanggal tidak ditulis sebagai DATE atau TIMESTAMP Parquet?

Tanggal di CSV muncul dalam banyak format dan zona waktu, dan menebaknya diam-diam bisa menggeser nilainya. Tanggal ditulis sebagai string persis seperti di file; ubah tipenya di DuckDB, Spark, atau pandas, tempat Anda menentukan format dan zona waktunya.

Kompresi mana yang sebaiknya dipilih?

Snappy bisa dipakai dengan hampir semua pembaca Parquet. Pilih gzip jika ukuran file lebih penting dan pembaca Anda mendukungnya, dan tanpa kompresi hanya untuk debugging.

Standar dan referensi