SmartQueryTools

Sort Parquet Files Online

Sort Parquet files by any column, ascending or descending, directly in your browser.

How to sort Parquet files

  1. Drop your file onto the upload area. It is loaded into the in-browser engine and the first 200 rows are shown.
  2. Choose the first column in the Sort by row and set it to Ascending or Descending.
  3. Click + Add sort key to add a Then by row for breaking ties. You can use up to four keys, and ✕ removes one.
  4. Click Sort. The preview shows the first 200 rows in their new order.
  5. Click Download to save the sorted file in the same format you uploaded.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Worked example

A teacher has exam results for two classes and wants each class grouped together, with the highest score at the top of each group. One student has no score yet.

Input (Parquet)

Parquet file (binary, columnar) — shown as a table with its schema

studentclassscoresubmitted
PriyaB882026-05-12
TomA722026-05-11
LenaA912026-05-12
OmarBNULL2026-05-13
JaeA852026-05-10

Schema: student VARCHAR, class VARCHAR, score BIGINT, submitted DATE

Settings

  • Sort by: class, Ascending
  • Then by: score, Descending

Result

studentclassscoresubmitted
LenaA912026-05-12
JaeA852026-05-10
TomA722026-05-11
PriyaB882026-05-12
OmarBNULL2026-05-13

Rows are first ordered by class, so all of class A comes before class B. Inside each class, the second key orders scores from high to low. Omar has no score, and empty values always go last, whether the direction is ascending or descending. That is why he stays at the bottom of class B.

Working with Parquet files

Parquet columns arrive with their stored types, so there is no guessing. Integers and decimals sort numerically, DATE and TIMESTAMP columns sort chronologically, and booleans put false before true when ascending. Timestamps are compared at full stored precision. Two events that look identical to the second in the preview can still be ordered by their microseconds. Decimal columns sort by their exact stored value.

Struct and list columns can be picked, but they are ordered by their contents field by field, which is rarely what you want. Sort on a scalar column instead. The sorted table is written as a new Parquet file with the same schema. Because rows are stored in the new order, later readers that scan the first row groups, or rely on min/max statistics per row group, can skip data more easily on the sorted column. The sort runs in browser memory, so a file near the 50 MB upload limit can take a few seconds.

Frequently Asked Questions

Does sorting a Parquet file help query performance?

Often, yes. Rows are written in sorted order, so each row group covers a narrow range of the sort column. Engines that use Parquet min/max statistics can then skip row groups when filtering on that column.

Are Parquet timestamps sorted with full precision?

Yes. The sort uses the stored value, including microseconds, and the output file keeps the original timestamp type.

How many columns can I sort by?

Up to four. The first key decides the main order, and each Then by key only breaks ties left by the keys above it.

Where do empty values go?

NULL values are always placed last, in both ascending and descending order.

Is the text sort case-sensitive?

Yes. Values are compared by character code, so uppercase letters sort before lowercase. Convert the column to one case first if you want "apple" and "Apple" side by side.

Related Tools