Open of plak een CSV-bestand en kies ‘Parquet downloaden’. Standaard is elke kolom een UTF-8-STRING die null mag zijn, dus nummers als 000917 houden hun nullen en lege cellen worden null. Kies Getallen en true/false herkennen om kolommen als INT64, DOUBLE en BOOLEAN te schrijven waar elke waarde past. Het bestand wordt in je browser geschreven door een Parquet-writer in JavaScript; er wordt niets geüpload.
Zo zet je CSV om naar Parquet
- Open een
.csv-,.tsv- of.txt-bestand, sleep het naar de tool of plak rijen. Controleer de tabel onder Invoer; stel zo nodig het scheidingsteken, de kopregel of de codering in onder Importinstellingen. - Kies de Waardetypen, de Compressie, of je Lege tekst als null schrijven wilt, en het aantal Rijen per rijgroep.
- Kies ‘Parquet downloaden’ en lees het
.parquet-bestand met DuckDB, pandas, Polars, Spark of een andere Parquet-lezer.
Wil je veel bestanden met dezelfde instellingen omzetten? Kies dan Batch: meerdere bestanden omzetten. Elk bestand wordt een eigen Parquet-bestand, en ze worden samen als één ZIP-bestand gedownload. In een batch mag elk bestand maximaal 25 MB zijn.
Schema en kolomtypen
Kolomnamen komen precies zoals ze er staan uit de kopregel. Een lege kolomnaam wordt Column 3 en een dubbele name (2), zodat elke Parquet-kolom een unieke naam heeft. Elke kolom is optioneel (mag null zijn).
| Alle waarden als tekst bewaren | De standaard. Elke kolom is een BYTE_ARRAY met de annotatie UTF-8-string en bevat elke waarde byte voor byte, inclusief voorloopnullen, 1,5, N/A en datumnotaties. |
|---|---|
| Gehele getallen (met herkenning) | INT64 als elke niet-lege waarde een geheel getal zonder voorloopnullen is, van −9.007.199.254.740.991 tot 9.007.199.254.740.991. Grotere gehele getallen houden de kolom op tekst. |
| Decimale getallen (met herkenning) | DOUBLE als elke waarde een gewoon decimaal getal is met maximaal 15 significante cijfers, zodat het de omzetting heel doorstaat. Een kolom met zowel 12 als 2.5 wordt DOUBLE. |
| true / false (met herkenning) | BOOLEAN als elke waarde true of false is, in welke schrijfwijze ook. |
| Datums en tijdstempels | Blijven in beide modi STRING, bijvoorbeeld 2026-03-01T08:00:00Z. Zet ze om in je query-engine, zoals met CAST(reading_at AS TIMESTAMP) in DuckDB. |
In getypeerde kolommen is een lege cel altijd null. In stringkolommen bepaalt Lege tekst als null schrijven (standaard aan) of een lege cel null wordt of een lege string "".
Compressie en rijgroepen
| Snappy (snel, gangbare standaard) | De standaardcodec. Elke gangbare Parquet-lezer ondersteunt hem. |
|---|---|
| Gzip (kleiner) | Meestal een kleiner bestand dan met Snappy. Sommige lichte lezers ondersteunen geen gzip. |
| Geen | Geen compressie, voor debuggen of voor tools zonder decompressor. |
| Rijen per rijgroep | Standaard 100.000, tussen 1.000 en 1.000.000. Omdat de werkruimte van de browser tot 100.000 rijen bevat, schrijft de standaard één rijgroep. Stel een kleinere waarde in voor meerdere rijgroepen die lezers kunnen overslaan of parallel lezen. |
Het bestand legt in de metadata ook de writer vast (hyparquet) en een sleutel created_by_app.
Veelvoorkomende problemen bij CSV naar Parquet
- Een numerieke kolom is een STRING. Ofwel is Alle waarden als tekst bewaren gekozen, ofwel is één waarde geen gewoon getal, zoals
1,234,12 kg,007of een decimaal getal met 16 cijfers. Zoek hem op met het kolomprofiel of in de CSV-viewer. - Nummers zijn in een ander programma hun voorloopnullen kwijtgeraakt. Deze converter maakt een kolom met voorloopnullen nooit numeriek. Zijn de nummers veranderd, dan is de CSV waarschijnlijk vóór het omzetten in een spreadsheet geopend en opgeslagen. Controleer het bronbestand in de CSV-viewer.
- Alles staat in één kolom. Het scheidingsteken is verkeerd geraden; kies het onder Importinstellingen.
- Het bestand is te groot voor deze tool. Omzetten naar Parquet werkt met bestanden tot 25 MB, 100.000 rijen, 250 kolommen en 2 miljoen cellen. Splits de CSV en zet de delen om, of comprimeer de CSV met gzip als je alleen een kleinere download nodig hebt.
Grenzen en privacy
Het CSV-bestand moet in de werkruimte van de browser kunnen openen: tot 25 MB, 100.000 rijen, 250 kolommen en 2 miljoen cellen. Het Parquet-bestand wordt in één keer in het geheugen opgebouwd.
De writer is hyparquet-writer, een bibliotheek in puur JavaScript die pas wordt geladen als je omzet; er komt geen WebAssembly of server aan te pas. Hij draait in een achtergrondproces in dit tabblad, zodat de pagina blijft reageren; met Annuleren stop je het. Het CSV-bestand wordt nooit naar een server gestuurd. Wil je liever een databasebestand waarin je kunt zoeken met query’s, gebruik dan CSV naar SQLite.
Voorbeeld: sensormetingen teruggelezen met PyArrow
Sensormetingen met nummers met voorloopnullen, ISO-tijdstempels, lege cellen en een komma tussen aanhalingstekens, omgezet met Getallen en true/false herkennen en de standaardcompressie Snappy, en daarna teruggelezen met PyArrow. temp_c werd DOUBLE en ok werd BOOLEAN; sensor_id en reading_at bleven strings. Met de standaard Alle waarden als tekst bewaren zijn alle vijf kolommen string en houdt ok de waarde TRUE zoals die er stond.
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"
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'}Vragen en antwoorden
Wordt mijn CSV geüpload om hem om te zetten?
Nee. Het Parquet-bestand wordt geschreven door een JavaScript-bibliotheek in een achtergrondproces in je browsertabblad, en de download wordt lokaal gemaakt.
Waarom worden datums niet als Parquet-DATE of -TIMESTAMP geschreven?
Datums in CSV-bestanden komen in veel notaties en tijdzones, en ze stilletjes raden kan waarden verschuiven. Ze worden als strings geschreven, precies zoals in het bestand. Zet ze om in DuckDB, Spark of pandas, waar je zelf de notatie en de tijdzone kiest.
Welke compressie kies ik?
Snappy werkt met vrijwel elke Parquet-lezer. Kies gzip als de bestandsgrootte belangrijker is en je lezer het ondersteunt, en geen compressie alleen voor debuggen.