Data Format Benchmark: CSV, JSON, Excel and Parquet

Original test: one 100,000-row table saved as CSV, JSON, Excel and Parquet, with file size, gzip size and conversion time. Free to cite.

What we measured

One orders table with 100,000 rows and 7 columns (order_id, customer, email, city, amount, order_date, status), made with random but realistic values. We converted it with the Data Utility converter code in a Node test and with the pyarrow library for comparison. Times come from one run on one computer, so treat them as a guide, and repeat the test on your own data with the free tools below.

File size

CSV: 6.87 MB. JSON (compact): 14.76 MB. JSON (pretty-printed): 19.56 MB. Excel (.xlsx): 4.41 MB. Parquet: 1.84 MB, which is 73 percent smaller than the CSV.

Size after gzip

CSV: 1.41 MB (79 percent smaller). JSON compact: 1.63 MB. JSON pretty: 1.78 MB. Parquet: 1.35 MB. Excel: 4.20 MB, only 5 percent smaller because the file is already compressed.

Conversion time for 100,000 rows

CSV to JSON: 0.34 seconds. CSV to Parquet: 0.41 seconds. CSV to Excel: 1.1 seconds.

Parquet compression settings (pyarrow)

Snappy: 1.88 MB. Zstd: 1.36 MB. Gzip: 1.30 MB. The Data Utility Parquet output, 1.84 MB, is close to the snappy result.

How to cite this page

You are welcome to quote these numbers. Please link to https://datautility.in/data-format-benchmark and mention Data Utility as the source.