Aller au contenu
Formats de fichiers

Formats de fichiers : CSV, JSON, Avro, Parquet

Le format d'un fichier décide de ce qui coûte cher : écrire, lire, typer ou faire évoluer. On choisit CSV ou JSON pour échanger, Avro pour des messages, Parquet pour analyser.

  • csv
  • json
  • jsonl
  • avro
  • parquet
  • ligne
  • colonne
  • schéma

Syntaxe

Modèle
Format   Orientation  Schéma               Lisible  Usage typique──────── ──────────── ──────────────────── ──────── ─────────────────────────────CSV      ligne        aucun (tout texte)   oui      export tableur, échange simpleJSON(L)  ligne        implicite, souple    oui      API, événements imbriquésAvro     ligne        embarqué et typé     non      messages Kafka, schéma qui évolueParquet  colonne      embarqué et typé     non      analyse, lac de données, entrepôtRègle de décision :  on écrit enregistrement par enregistrement  → format ligne (JSONL, Avro)  on lit quelques colonnes sur beaucoup de lignes → format colonne (Parquet)  un humain doit ouvrir le fichier             → CSV ou JSON, en bout de chaîne

Exemple

Exemple concret
Trois flux arrivent dans le lac de données d'une enseigne de distribution.1. Le fournisseur envoie son catalogue chaque matin, depuis un tableur.   → CSV accepté en entrée, avec séparateur, encodage (UTF-8) et format     décimal écrits dans le contrat ; converti en Parquet dès l'arrivée.2. Les caisses publient chaque vente dans Kafka, une par message.   → Avro : message compact, typé, et le schéma peut gagner un champ     optionnel sans casser les consommateurs existants.3. Les analystes calculent le chiffre d'affaires par magasin sur deux ans.   → Parquet : la requête ne lit que les colonnes magasin et montant,     compressées, au lieu de relire chaque ligne complète.Résultat attendu : un format par usage, et une conversion uniquevers Parquet à l'entrée du lac plutôt qu'à chaque lecture.

À retenir

  1. Un CSV n'a pas de types : un code postal 01000 devient 1000 s'il est lu comme un nombre. Imposez les types à la lecture plutôt que de les laisser deviner.
  2. Pour de gros volumes de JSON, préférez JSON Lines (un objet par ligne) : on peut lire, découper et paralléliser le fichier sans le charger entier en mémoire.
  3. Avro et Parquet embarquent leur schéma : le fichier se décrit lui-même, ce qui évite de maintenir un dictionnaire de colonnes à part.
  4. Piège : les CSV produits en France utilisent souvent le point-virgule comme séparateur et la virgule comme décimale. Lu avec les réglages par défaut, 12,50 devient deux colonnes ou une chaîne.

Voir aussi