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 Parquet naar TSV 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.
Parquet naar TSV
Het is een binaire container. head erop print de vier bytes PAR1 en dan een scherm vol ruis, grep vindt niets betrouwbaars want de waarden zijn gecomprimeerd en woordenboekgecodeerd, en wc -l geeft een getal zonder relatie tot het aantal rijen. Het bestand is bedoeld om door een engine gelezen te worden.
Dat is precies de situatie waarvoor deze omzetting bestaat: een Parquet-export op een server, een laptop zonder beheerdersrechten, een container zonder iets geïnstalleerd. Er regels van maken is de snelste route om er überhaupt iets over te kunnen zeggen.
Waarden in een data-export zitten vol komma’s — adressen, productnamen, vrije tekst, getallen in Europese notatie. Een kommagescheiden bestand moet dat allemaal tussen aanhalingstekens zetten, en elke gebruiker van het bestand moet quoting correct implementeren voor hij een kolomgrens kan vinden.
Tabs komen in dat soort data vrijwel nooit voor, dus concurreren scheidingsteken en inhoud niet meer met elkaar. Na deze omzetting vindt cut -f3 de derde kolom, awk -F"\t" ook. Niets hoeft geparseerd te worden; er hoeft alleen gesplitst te worden.
Een tab binnen een waarde is de uitzondering. Zeldzamer in data uit een Parquet-bestand dan uit een spreadsheet, maar het komt voor — vrijetekstvelden dragen wat er ooit in geplakt werd. Gebeurt dat, dan schrijft de omzetter dat veld tussen dubbele aanhalingstekens, want het alternatief is een rij die stilzwijgend een kolom te veel krijgt.
Die uitvoer is correct en een echte parser verwerkt het goed. cut -f niet: het telt tabtekens en kent geen aanhalingsteken, dus vanaf die rij ziet het één veld te veel. Geeft een pijplijn scheve resultaten op een handjevol van een miljoen rijen, dan verklapt grep -c '"' output.tsv in een seconde of dit de oorzaak is.
Een tijdstempelkolom wordt geschreven als een ISO 8601-tekst — 2024-03-11T09:30:00.000Z — het enige zinnige antwoord in een formaat zonder datumtype. Het heeft een eigenschap die in een shell veel uitmaakt: het sorteert chronologisch onder een gewone lexicale sortering.
sort -k4 op een datumkolom doet dus wat je bedoelde, uniq -c op de eerste tien tekens telt rijen per dag. Geen van beide werkt op een landspecifiek geformatteerde datum, en geen van beide werkt op een epoch-getal zonder rekenwerk.
Parquet bevat native lijsten, structs en maps. Een tekstregel niet, dus een geneste kolom wordt als JSON binnen zijn veld geschreven: een lijst komt aan als ["a","b"], een struct als een object met zijn ledennamen.
Dat is bewust een vorm die iets anders kan lezen. cut -f5 output.tsv | jq ".[0]" haalt het eerste element van elke lijst, en de nesting overleeft de overtocht. Binaire kolommen zonder tekstannotatie worden lowercase hexadecimaal geschreven: omkeerbaar, geen scheidingsteken erin, en niemand verwart het met proza.
Een null wordt geschreven als een leeg veld. Elke rij behoudt hetzelfde aantal tabs, dus het bestand blijft rechthoekig en positionele tools blijven uitgelijnd.
Het wist ook een onderscheid dat het bronbestand zorgvuldig maakte. Parquet legt nulbaarheid per kolom vast en onderscheidt een null van een lege string; in de uitvoer zijn beide hetzelfde: nul tekens tussen twee tabs. Tel je ontbrekende waarden, haal die telling dan uit de bron met een query-engine.
Alles wat het Parquet-bestand over zijn kolommen wist — het type van elk, het aantal rijen, statistieken per kolom — leeft in een footer, en niets daarvan overleeft in een tabgescheiden bestand. De uitvoer heeft een koprij met namen en daarna zijn het alleen tekens.
Kun je het schema ergens vandaan lezen, doe dat dan voor het omzetten en schrijf het op. DESCRIBE SELECT * FROM "file.parquet" in DuckDB print het in één statement.
Parquet is gecomprimeerd en woordenboekgecodeerd, dus de tekst waartoe het uitzet, is routinematig meerdere malen de bestandsgrootte. Een kolom met herhaalde statuscodes kost in de bron bijna niets en kost in de uitvoer een volledige kopie per rij.
Dat is de moeite van vooraf inschatten waard, want de uitgezette tabel wordt tijdens de omzetting in het geheugen gehouden. Een export van honderd megabyte kan veel meer dan honderd megabyte tekst opleveren.
De Parquet-lezer is een bibliotheek die op verzoek in deze pagina geladen wordt, en het schrijven is gewone JavaScript. Geen verzoek draagt het bestand mee, dus een export uit het midden van een dataplatform — meestal de ongeaggregeerde, ongemaskeerde versie — wordt geen kopie op andermans server.
Er is geen wachtrij en geen account, en het plafond is 100 MB per bestand. Voor een bestand groot genoeg om een probleem te zijn, is een query-engine het betere antwoord.
Kun je iets installeren, installeer dan DuckDB. Het leest het Parquet-bestand ter plekke zonder importstap, print het schema in één statement, beantwoordt de vraag die je echt had met een WHERE-clausule, en materialiseert nooit de hele tabel.
Deze omzetting is voor als dat niet kan: een afgesloten machine, andermans laptop, een bestand per e-mail, een vraag van vijf minuten die geen installatie rechtvaardigt. Ook juist als de bestemming echt een tekstpijplijn is — een bestaand awk-script, een diff tegen gisterens export.
| Parquet | TSV | |
|---|---|---|
| Volledige naam | Apache Parquet | Tab-Separated Values |
| Bestandsextensie | .parquet | .tsv, .tab |
| Mediatype | application/vnd.apache.parquet | text/tab-separated-values |
| Compressie | Zonder verlies — er gaat niets weg | — |
| Voor het eerst gepubliceerd | 2013 | 1993 |
| Uitgegeven door | Apache Software Foundation | — |
| Specificatie | — | IANA text/tab-separated-values |
| Licentie | Open standaard | Open standaard |
| Stand van zaken | Actueel | Actueel |
| Opent in een browser | Geen browser | Geen browser |
| In plaats daarvan overwogen | CSV, JSON | CSV, JSON |
Er gaat niets verloren. Parquet en TSV bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.
TSV is een werkformaat en Parquet een af formaat. Wat terugkomt is bewerkbare tekst in plaats van een afbeelding van de pagina, meestal de reden voor de omzetting en tegelijk haar grens.
pandas leest zowel Parquet als TSV, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.
TSV stamt uit 1993, vastgelegd in IANA text/tab-separated-values. Microsoft Excel, LibreOffice Calc en pandas lezen het formaat.
TSV verscheen in 1993 en Parquet in 2013. Het oudste is doorgaans het veiligste bestand om te overhandigen; het nieuwste doet hetzelfde werk met minder bytes.
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.
Nee. TSV bewaart dezelfde inhoud zonder iets weg te gooien: het resultaat is in kwaliteit identiek aan het origineel.
Er gaat niets verloren. Parquet en TSV bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.
TSV is een werkformaat en Parquet een af formaat. Wat terugkomt is bewerkbare tekst in plaats van een afbeelding van de pagina, meestal de reden voor de omzetting en tegelijk haar grens.