pqless_

Browse Parquet files a screenful at a time, like less. Opens huge and very wide files instantly.

pqless browsing a 250,000-row file: paging down, moving between columns, jumping to the last row and to row 125,000, and showing the help screen.

Only reads what you see

Parquet stores each column separately, so pqless decodes just the rows and columns on screen. The first page of a multi-gigabyte file with tens of thousands of columns appears in a fraction of a second.

Built for wide data

Move a column cursor sideways and new columns load as they scroll into view. The header stays pinned, and the status bar shows each column's full name and type.

Feels like less

Space, b, g, G, j/k and number prefixes work as you'd expect. Piped output prints a plain-text table, so | grep and | head work too.

How it compares

Time until the first screen of rows appears, and peak memory. Median of 3 runs on an Apple M2 Pro.

Tool Everyday250k rows × 38 cols Tall20M rows × 4 cols Wide20k rows × 10,000 cols
Interactive viewers
pqless0.03 s · 12 MB0.03 s · 15 MB0.04 s · 23 MB
parqeye0.07 s · 28 MB0.05 s · 34 MB7.62 s · 1.3 GB
tabiew0.14 s · 185 MB0.68 s · 1.7 GB2.11 s · 2.0 GB
VisiData0.51 s · 304 MB0.60 s · 4.4 GB0.96 s · 2.3 GB
Print rows and exit
pqrs head0.01 s · 17 MB0.01 s · 15 MB0.37 s · 1.5 GB
DuckDB0.03 s · 34 MB0.02 s · 28 MB2.02 s · 2.5 GB
parquet-cli0.34 s · 306 MB0.70 s · 2.0 GB2.24 s · 3.1 GB
parquet-tools0.42 s · 321 MB0.78 s · 2.0 GB2.86 s · 2.8 GB

On everyday and tall files the fast tools are all effectively instant. Wide files are where reading only the visible columns pays off. VisiData and tabiew load the whole file up front so they can sort, filter and query it, which pqless doesn't do. Files, method and how to reproduce.

Install

Homebrew (macOS, Linux)

brew install danodonovan/tap/pqless

Install script (macOS, Linux; x86_64, arm64)

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/danodonovan/pqless/releases/latest/download/pqless-installer.sh | sh

From source (Rust 1.88+)

cargo install --git https://github.com/danodonovan/pqless

Then run pqless data.parquet and press ? for keys.

Keys

j ↓ Enterdown a row
k ↑ yup a row
space f PgDndown a page
b PgUpup a page
d / udown / up half a page
g Homefirst row
G Endlast row
N ggo to row N
l → / h ←next / previous column
$ / 0last / first column
N + keyrepeat a move N times
?show / hide help
q Escquit