Ouvrez ou collez un fichier CSV, puis choisissez Télécharger en Parquet. Par défaut, chaque colonne est un STRING UTF-8 qui accepte les valeurs nulles : les identifiants comme 000917 gardent leurs zéros, et les cellules vides deviennent null. Choisissez Détecter les nombres et true/false pour écrire des colonnes INT64, DOUBLE et BOOLEAN lorsque toutes les valeurs s’y prêtent. Le fichier est écrit dans votre navigateur par un générateur Parquet en JavaScript ; rien n’est envoyé.
Convertir un CSV en Parquet, étape par étape
- Ouvrez un fichier
.csv,.tsvou.txt, déposez-le sur l’outil ou collez des lignes. Vérifiez le tableau dans l’onglet Entrée ; si besoin, réglez le séparateur, la ligne d’en-têtes ou l’encodage dans Paramètres d’importation. - Choisissez les Types de valeurs, la Compression, indiquez s’il faut Écrire le texte vide en null, puis réglez les Lignes par groupe de lignes.
- Choisissez Télécharger en Parquet et lisez le fichier
.parquetavec DuckDB, pandas, Polars, Spark ou tout autre lecteur Parquet.
Pour convertir de nombreux fichiers avec les mêmes réglages, choisissez Lot : convertir plusieurs fichiers. Chaque fichier devient un fichier Parquet distinct, et tous sont téléchargés ensemble dans un seul ZIP. En mode lot, chaque fichier doit peser 25 Mo au maximum.
Schéma et types de colonnes
Les noms de colonnes proviennent de la ligne d’en-têtes, exactement tels qu’ils sont écrits. Un en-tête vide devient Column 3 et un en-tête répété name (2) : chaque colonne Parquet a ainsi un nom unique. Toutes les colonnes sont facultatives (elles acceptent null).
| Tout garder en texte | Le réglage par défaut. Chaque colonne est un BYTE_ARRAY annoté comme chaîne UTF-8, qui conserve chaque valeur octet pour octet, y compris les zéros initiaux, 1,5, N/A et les formats de date. |
|---|---|
| Nombres entiers (avec détection) | INT64 lorsque toutes les valeurs non vides sont des entiers sans zéro initial, compris entre −9 007 199 254 740 991 et 9 007 199 254 740 991. Des entiers plus grands laissent la colonne en texte. |
| Décimaux (avec détection) | DOUBLE lorsque toutes les valeurs sont des décimaux simples de 15 chiffres significatifs au plus, qui supportent donc la conversion. Une colonne qui mélange 12 et 2.5 devient DOUBLE. |
| true / false (avec détection) | BOOLEAN lorsque toutes les valeurs sont true ou false, quelle que soit la casse. |
| Dates et horodatages | Restent en STRING dans les deux modes, par exemple 2026-03-01T08:00:00Z. Convertissez-les dans votre moteur de requêtes, par exemple avec CAST(reading_at AS TIMESTAMP) dans DuckDB. |
Dans les colonnes typées, une cellule vide est toujours null. Dans les colonnes de texte, Écrire le texte vide en null (activé par défaut) détermine si une cellule vide devient null ou une chaîne vide "".
Compression et groupes de lignes
| Snappy (rapide, choix par défaut courant) | Le codec par défaut. Tous les lecteurs Parquet courants le prennent en charge. |
|---|---|
| Gzip (plus compact) | Donne en général un fichier plus petit qu’avec Snappy. Certains lecteurs légers n’intègrent pas la prise en charge de gzip. |
| Aucune | Pas de compression, pour le débogage ou pour les outils dépourvus de décompresseur. |
| Lignes par groupe de lignes | 100 000 par défaut, entre 1 000 et 1 000 000. Comme l’espace de travail du navigateur contient au plus 100 000 lignes, la valeur par défaut écrit un seul groupe de lignes ; choisissez une valeur plus petite pour obtenir plusieurs groupes que les lecteurs peuvent ignorer ou lire en parallèle. |
Le fichier enregistre aussi le générateur (hyparquet) et une clé created_by_app dans ses métadonnées.
Problèmes fréquents de conversion CSV en Parquet
- Une colonne numérique est en STRING. Soit Tout garder en texte est sélectionné, soit une valeur n’est pas un nombre simple, comme
1,234,12 kg,007ou un décimal à 16 chiffres. Retrouvez-la avec le profil des colonnes ou le lecteur CSV. - Les identifiants ont perdu leurs zéros initiaux dans un autre outil. Ce convertisseur ne rend jamais numérique une colonne à zéros initiaux. Si les identifiants ont changé, le CSV a probablement été ouvert et enregistré dans un tableur avant la conversion ; vérifiez le fichier source dans le lecteur CSV.
- Tout est dans une seule colonne. Le séparateur a été mal deviné ; choisissez-le dans Paramètres d’importation.
- Le fichier est trop gros pour cet outil. La conversion en Parquet fonctionne sur des fichiers jusqu’à 25 Mo, 100 000 lignes, 250 colonnes et 2 millions de cellules. Découpez le CSV et convertissez les parties, ou compressez le CSV en gzip si vous avez seulement besoin d’un téléchargement plus léger.
Limites et confidentialité
Le CSV doit pouvoir s’ouvrir dans l’espace de travail du navigateur : jusqu’à 25 Mo, 100 000 lignes, 250 colonnes et 2 millions de cellules. Le fichier Parquet est construit en mémoire, en une seule passe.
Le générateur est hyparquet-writer, une bibliothèque entièrement en JavaScript chargée uniquement au moment de la conversion ; il n’y a ni WebAssembly ni étape côté serveur. Il s’exécute dans un worker en arrière-plan, dans cet onglet : la page reste réactive et Annuler interrompt le traitement. Le CSV n’est jamais envoyé sur un serveur. Pour obtenir plutôt un fichier de base de données interrogeable, utilisez CSV en SQLite.
Exemple : des relevés de capteurs relus avec PyArrow
Des relevés de capteurs avec des identifiants à zéros initiaux, des horodatages ISO, des cellules vides et une virgule entre guillemets, convertis avec Détecter les nombres et true/false et la compression Snappy par défaut, puis relus avec PyArrow. temp_c est devenue DOUBLE et ok est devenue BOOLEAN ; sensor_id et reading_at sont restées des chaînes. Avec le réglage par défaut Tout garder en texte, les cinq colonnes sont de type string et ok garde TRUE tel qu’il est écrit.
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'}Questions fréquentes
Mon CSV est-il envoyé pour être converti ?
Non. Le fichier Parquet est écrit par une bibliothèque JavaScript dans un worker de l’onglet de votre navigateur, et le téléchargement est créé localement.
Pourquoi les dates ne sont-elles pas écrites en DATE ou TIMESTAMP Parquet ?
Les dates d’un CSV existent dans de nombreux formats et fuseaux horaires, et les deviner sans le dire peut décaler des valeurs. Elles sont écrites sous forme de chaînes, exactement comme dans le fichier ; convertissez-les dans DuckDB, Spark ou pandas, où vous choisissez le format et le fuseau.
Quelle compression choisir ?
Snappy fonctionne avec pratiquement tous les lecteurs Parquet. Choisissez gzip lorsque la taille du fichier compte davantage et que votre lecteur le prend en charge, et l’absence de compression uniquement pour le débogage.