gizmobench
BrowseDaily

Parquet Viewer

Open a local Parquet file to inspect its schema, column types, compression, row groups and total row count. Choose one row group and preview up to 5,000 rows, then download the visible columns and rows as CSV or JSON. Large integers and decimals retain their digits. The reader supports uncompressed, SNAPPY and GZIP data; unsupported codecs or encodings are identified. Files are read in this tab, with a 50 MiB file limit and no cloud connection.

orders.parquet4.0 KiB
  • rows24
  • row groups2
  • columns9
  • compressionSNAPPY
  • encodingsPLAIN_DICTIONARY, RLE, PLAIN
  • created byparquet-cpp-arrow version 21.0.0

schema 9 of 9 showing

18 of 18
order_idINT64placedTIMESTAMP(MILLIS)customerUTF8totalDECIMAL(9,2)qtyINT32paidBOOLEANtagsLIST<UTF8>noteUTF8big_idINT64
10012026-07-01T09:14:00.000Ada Whitfield12.001false["rush"]null9007199254740993
10022026-07-01T16:17:00.000Ravi Menon19.352true[]null9007199254740994
10032026-07-01T23:20:00.000Jae Park26.703truenullleft at the side door9007199254740995
10042026-07-02T06:23:00.000Mina Okafor34.054false["gift","rush"]null9007199254740996
10052026-07-02T13:26:00.000Tom Bregman41.405true["web"]null9007199254740997
1006nullSofia Ruiz48.751true["web"]null9007199254740998
10072026-07-03T03:32:00.000Ada Whitfield56.102false["rush"]null9007199254740999
10082026-07-03T10:35:00.000Ravi Menon63.453true[]call on arrival9007199254741000
10092026-07-03T17:38:00.000Jae Park70.804truenullnull9007199254741001
10102026-07-04T00:41:00.000Mina Okafornull5false["gift","rush"]null9007199254741002
10112026-07-04T07:44:00.000Tom Bregman85.501true["web"]null9007199254741003
10122026-07-04T14:47:00.000Sofia Ruiz92.852true["web"]null9007199254741004
10132026-07-04T21:50:00.000Ada Whitfield100.203false["rush"]null9007199254741005
10142026-07-05T04:53:00.000Ravi Menon107.554true[]null9007199254741006
10152026-07-05T11:56:00.000Jae Park114.905truenullnull9007199254741007
10162026-07-05T18:59:00.000Mina Okafor122.251false["gift","rush"]second attempt9007199254741008
10172026-07-06T02:02:00.000Tom Bregman129.602true["web"]null9007199254741009
10182026-07-06T09:05:00.000Sofia Ruiz136.953true["web"]null9007199254741010
showing 18 of 18 in row group 1, 24 in the file
Rows in file
24
Shown
18
Columns
9 of 9
Compression
SNAPPY

18 rows on screen from row group 1 of 2, which holds 18. This file holds 24 rows in all, and the grid never stands in for that number.

  • A nine column filefirst row group
    9 columns, 18 rows, null shown as null
  • A list columnLIST of UTF8
    tags reads ["rush"], [] and null
  • A codec it cannot readZSTD
    ZSTD named, schema read, no rows decoded

Pages compressed with UNCOMPRESSED, SNAPPY, GZIP are read here, in plain or dictionary encoding, which is what pyarrow, Spark and DuckDB write by default. A column in another codec or encoding is named under the stage and left out rather than guessed at, and the rest of the grid still reads.

Accuracy. Read in your browser by a Parquet reader written for this page: the file is never uploaded and no cloud credential is asked for. Types come from the file's own schema, so an integer past 2^53 stays exact and a null reads as null rather than as an empty cell. The grid is a capped preview and the row count printed beside it is the file's real total, never the number on screen; a codec or an encoding this reader cannot decode, ZSTD or a delta encoding, is named and refused rather than guessed at.

Common questions

How do I open a Parquet file here?
Press Open file and pick it, or drop the file anywhere on the dark stage. The reading happens in this tab: nothing is uploaded, there is no account and no cloud credential is asked for. The page opens on a sample so the job is visible before you open anything of your own: 4,085 bytes, 24 rows in two row groups of 18 and 6, nine columns, SNAPPY compressed, written by parquet-cpp-arrow version 21.0.0, with a timestamp, an exact decimal, a list column, nulls and an integer past 2^53 in it. Your own file is read the same way.
Which compression codecs can it read?
UNCOMPRESSED, SNAPPY and GZIP. LZO, BROTLI, LZ4, LZ4_RAW and ZSTD are unsupported. The schema, row counts and codec names can still be shown when a column cannot be decoded. Rewrite the source with a supported codec and encoding in its original data tool if you need those rows here. A codec name alone does not guarantee that every value encoding is supported.
Which encodings does it decode?
PLAIN, PLAIN_DICTIONARY and RLE_DICTIONARY for values, plus the supported RLE hybrid level and boolean encodings. It reads both data-page versions. DELTA_BINARY_PACKED, DELTA_LENGTH_BYTE_ARRAY, DELTA_BYTE_ARRAY, BYTE_STREAM_SPLIT and deprecated BIT_PACKED are not supported. An unreadable column is named and omitted rather than guessed; this is not a universal Parquet reader.
Does the grid show every row in the file?
No, and it never pretends to. The grid shows one row group at a time, capped at 100, 500, 1,000 or 5,000 rows, and the cap opens at 1,000. Rows in file and Shown are two separate cells under the stage for that reason, the count beside the grid names both numbers, and the export writes exactly the rows you can see. Pick another row group from the list in the pane head to read further into the file.
How are nulls, lists, maps and nested columns shown?
A null prints as null in a dimmer colour, never as an empty cell, because an empty string is a different value and has to look different. A list column keeps its shape: ["rush"] is one element, [] is an empty list and null is no list at all, and the three are distinguished by the definition levels the file stores. A list of lists reads as [[1,2],[3]]. A struct becomes one column per field, named addr.city and addr.zip. A map becomes its keys and its values, named m.key and m.value, in the order the file holds them.
Are big integers and decimals exact here?
Yes. An INT64 is read as a big integer and printed digit for digit, so 9007199254740993 stays 9007199254740993 rather than rounding to the nearest value a JavaScript number can hold. A DECIMAL is rebuilt from the unscaled integer and the scale in the schema, so DECIMAL(9,2) prints 12.00 and a 38-digit DECIMAL prints all 38 digits. Neither passes through a float on the way to the screen or into the export.
How large a file can it open?
At most 50 MiB, or 52,428,800 bytes. The whole file is held in browser memory, although the table decodes one row group up to the selected preview cap. There is no streaming or unlimited-file support, and file complexity can affect time and memory within that limit. Split a larger file into smaller files in its source data tool before opening one here.
What do Copy and Download write?
Whichever of CSV and JSON the switch beside them is set to, holding the rows on screen and the columns still showing. The CSV follows RFC 4180: a value with a comma, a quote or a line break comes back quoted, a null is an empty field and a list is written as its JSON text. The JSON is an array of objects in which a big integer and an exact decimal are written as their own digits, which JSON allows and a float would not keep. A binary value is written as its length, bytes:16 for a sixteen byte value, rather than as half of its bytes, because half a blob in a spreadsheet is worse than none.
Why does a timestamp show no Z, or a different one from my query tool?
Because the page prints the instant the file stores and says which convention it was stored under. A TIMESTAMP column marked isAdjustedToUTC in the schema prints with a trailing Z; one written as a local or naive timestamp, which is what pandas and pyarrow write for a tz-naive column, prints without it. The type beside the column header names the unit as well, MILLIS, MICROS or NANOS, and the fraction printed carries that many digits.
Is my file or my settings remembered?
The preview cap and the export format are kept in this browser alone, so the page is as you left it when you come back, and the Start over button above the tool forgets them. The file itself is never remembered: it stays on your disk, and this page holds it only while the tab is open. If your browser blocks storage entirely, everything on the page still works and nothing is kept between visits.
What happens if the file is damaged or encrypted?
It is refused, with a message naming what went wrong. A file that does not start or end with PAR1, a footer length that points outside the file, a page offset past the end of the file, a page claiming more bytes than the column holds and a dictionary index past the end of its dictionary are each caught and named. A file whose footer is encrypted ends with PARE instead of PAR1 and is named as encrypted rather than as damaged; nothing here decrypts anything.
How do I convert Parquet to CSV or JSON?
Open a supported .parquet file, choose its row group and preview cap, and select CSV or JSON beside Copy and Download. Only the visible columns and previewed rows are exported. The cap is 5,000 rows per selected group, so this is not an entire-file converter for larger groups and it does not combine all groups or files. CSV can be opened in <a href="/csv-viewer">CSV Viewer</a> or passed to <a href="/spreadsheet-converter/csv-to-xlsx">Spreadsheet Converter</a> for a small Excel workbook.
Can I inspect the schema or metadata without installing Python?
Yes. The page shows the column schema and types, file row count, row groups, compression and writer information that the footer supplies. Supported rows appear alongside that information. This is a focused file viewer, not a raw dump of every footer field, a metadata editor or an SQL query engine. Encrypted files cannot be read here.
Can I convert CSV or JSON into Parquet, or query a cloud bucket?
No. This reader only accepts local Parquet files and exports a preview as CSV or JSON. It does not write Parquet, fetch an S3 object or URL, connect to a database, run SQL, filter rows or join files. Open CSV in <a href="/csv-viewer">CSV Viewer</a> or use <a href="/json-to-csv">JSON to CSV</a> for those text formats.
Does it work on Mac, Windows, Linux or mobile?
Use a current browser to choose a local file; no Python or desktop installation is needed. On a small screen the grid scrolls horizontally. No native app, command-line tool, editor extension or guaranteed offline package is supplied. The file is not remembered between visits; only the preview cap and export format can be saved in this browser.

Read in your browser by a Parquet reader written for this page: the file is never uploaded and no cloud credential is asked for. Types come from the file's own schema, so an integer past 2^53 stays exact and a null reads as null rather than as an empty cell. The grid is a capped preview and the row count printed beside it is the file's real total, never the number on screen; a codec or an encoding this reader cannot decode, ZSTD or a delta encoding, is named and refused rather than guessed at.