Comparisons

Pairs that get conflated in real conversations. Neither column wins — what decides is the requirement, and each record leads with the confusion, because the confusion is the reason the record exists at all.

Parquet vs Avro

What people get wrong about this pair

They are compared as though one is better. They are different orientations: columnar for scanning a few fields of many rows, row-oriented for reading whole records — and a data platform normally uses both, at different hops.

Parquet
Use it when

Analytical scans that project a few columns and filter on one.

Avro
Use it when

Event serialization and record-at-a-time interchange, where whole records are read and schemas evolve.

DimensionParquetAvro
OrientationColumnarRow-oriented
Reading two of eight columnsReads twoReads all eight, then discards six
Writing one recordPoor — it wants batchesNatural
Statistics for skippingPer column chunk, in the footerNone
Schema evolutionSupported, and read by the reader from the footerIts central design concern
Typical positionThe lake and warehouse layersThe event stream and interchange layers