Cookies voor statistiek en advertenties
We gebruiken cookies voor statistiek en voor advertenties, allebei naar Google. Weigeren verandert niets aan wat je te zien krijgt.Lees de privacypagina
Hier zet je NDJSON naar Parquet om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.
Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.
Ze worden een voor een omgezet en samen in één ZIP gedownload.
NDJSON naar Parquet
Deze pagina is voor iemand met een append-only bestand dat over tijd is gegroeid: velden die pas een derde van de weg verschijnen omdat een deploy ze heeft toegevoegd, en waarden die van type veranderen onder dezelfde sleutel. Dat is anders dan een API-dump met geneste structuur, waarvoor de aparte JSON-naar-Parquet-omzetting bedoeld is.
Schema-drift in een logbestand is precies het soort probleem dat deze omzetting eerlijk moet benoemen in plaats van te verbergen achter een geslaagde omzetting.
Records worden plat geslagen tot kolommen met een punt-gescheiden naam: `gebruiker.naam` voor een genest object, `labels.0` en `labels.1` voor de elementen van een array. Dat is dezelfde platslaglogica als bij CSV, TSV, SQL en XLSX op deze site.
Er komt dus geen letterlijke `[object Object]`-tekst en geen kommagescheiden array-tekst meer voor — die problemen zijn er, sinds de laatste update van deze engine.
Parquet schrijft slechts vier fysieke typen: boolean, geheel getal, kommagetal en tekst. Elke kolom krijgt één type, bepaald over alle waarden in die kolom heen.
Komt in dezelfde kolom ergens een waarde voor die niet numeriek is — een lege string tussen anders numerieke waarden, of een tekstwaarde die per ongeluk in een numeriek veld terechtkwam — dan wordt de hele kolom als tekst geschreven, ook de rijen die er zelf numeriek uitzagen.
Een geheel getal buiten het bereik van een normaal 32-bit geheel getal wordt geschreven als kommagetal, nooit als een groter geheeltalig type. Dat is een bewuste keuze: een 64-bit geheeltalig type zou een exactheid beloven die het schrijfproces niet daadwerkelijk garandeert.
Voor de meeste logvelden — tijdstempels in milliseconden, tellers, ID’s binnen een normaal bereik — is dat geen probleem; bij een zeer groot ID buiten het normale bereik is het de moeite waard het resultaat te controleren.
Op een gegenereerde reeks van 50.000 bestelrecords met zes velden woog het NDJSON-bestand 4,8 MB tegenover 207 KB voor dezelfde data als Parquet — een factor van meer dan twintig. Dat verschil komt uit een gemeten test, niet uit een algemene belofte over Parquet.
De exacte verhouding hangt af van hoeveel herhaling en structuur in de data zit; een logbestand met veel identieke sleutels comprimeert doorgaans sterker dan een bestand met sterk wisselende velden.
De omzetting draait volledig in de browser; het bestand wordt niet naar een server gestuurd. De limiet op het gratis plan is 100 MB per bestand.
Voor een groot logbestand is dat ruim voldoende, gezien hoe compact Parquet als doelformaat is.
Tot honderd NDJSON-bestanden tegelijk kunnen in één sessie worden omgezet, elk met een eigen voortgangsindicator, en het resultaat komt terug als losse Parquet-bestanden of als ZIP.
Bruikbaar wanneer een logrotatiesysteem elke dag een nieuw NDJSON-bestand aflevert dat in hetzelfde formaat moet worden gearchiveerd.
Deze omzetting valideert het schema niet en waarschuwt niet expliciet wanneer een kolom door een enkele afwijkende waarde naar tekst omslaat — dat gebeurt stilzwijgend als onderdeel van het schrijfproces.
Voor een bestand waarvan de datakwaliteit onzeker is, is het de moeite waard om na de omzetting steekproefsgewijs te controleren of kolommen het verwachte type hebben.
| NDJSON | Parquet | |
|---|---|---|
| Volledige naam | Newline-Delimited JSON | Apache Parquet |
| Bestandsextensie | .ndjson, .jsonl | .parquet |
| Mediatype | application/x-ndjson | application/vnd.apache.parquet |
| Compressie | — | Zonder verlies — er gaat niets weg |
| Voor het eerst gepubliceerd | 2013 | 2013 |
| Uitgegeven door | — | Apache Software Foundation |
| Licentie | Open standaard | Open standaard |
| Stand van zaken | Actueel | Actueel |
| Opent in een browser | Geen browser | Geen browser |
| In plaats daarvan overwogen | JSON, CSV | CSV, JSON |
pandas leest zowel NDJSON als Parquet, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.
Parquet komt van Apache Software Foundation en stamt uit 2013. pandas, Apache Spark en DuckDB lezen het formaat.
Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt. De motor achter juist dit paar is parquet-wasm, een WebAssembly-versie van de Apache Arrow-lezer; je browser haalt die één keer op en bewaart hem.
Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk. parquet-wasm wordt naar je eigen machine gehaald en draait daar, en daarom staat er geen teller op.
NDJSON en Parquet beschrijven de inhoud op fundamenteel andere manieren. De omzetting is daarom een reconstructie en geen kopie: getrouw, maar niet byte voor byte identiek. Geneste objecten worden platgeslagen tot kolommen. Diep geneste gegevens verliezen hun vorm.
Voor de omzetting niet: die gebeurt in de browser die je al open hebt staan. Om het resultaat te openen heb je daarna het programma nodig waarmee je apparaat Apache Parquet normaal weergeeft.