Skip to main content

arrs

A command-line tool for inspecting Arrow-based datasets. It reads Lance datasets today; the core is format-agnostic, so other Arrow-backed formats can be added without changing the commands or the output layer.

arrs rowcount dataset.lance
arrs head -n 5 dataset.lance
arrs stats --where "split = 'test'" dataset.lance
arrs search --column embedding --vector-file q.json -k 10 dataset.lance

Install

uv tool install rust-arrs   # prebuilt binary, from PyPI
cargo install arrs-cli      # from crates.io

Building from a clone and installing shell completions are covered in doc/install.md.

Commands

Every command takes a local path or an object-store URI (s3://, gs://, az://, file://).

Command Description
cat Print every row of one or more datasets.
head / tail First / last N rows (default 10).
take Rows at given indices, e.g. --indices '-1,0,2:4'.
sample N random rows without replacement; --seed for reproducibility.
rowcount Number of rows.
schema Logical (Arrow) or physical (format-native) schema.
stats Per-column summary statistics, the df.describe() of a dataset.
freq Value counts for one column: each distinct value, its count and percent.
diff Compare two datasets, or two versions of one Lance dataset.
blob Write one cell's binary payload to a file or stdout.
completions Print a shell completion script.

Lance-only commands:

Command Description
stat One-screen dataset health summary, from metadata only.
versions / branches / tags List versions, branches, and tags.
indices Indices on the dataset: name, type, columns, version.
index-stats Indexed vs unindexed row counts per index.
fragments Fragments with row, deletion, file, and size information.
search Nearest-neighbor vector search; appends a _distance column.

Per-command options and output are documented in doc/commands.md.

Global flags

Flag Purpose
--format <csv|jsonl|table|ipc> Output format. Defaults to table for the summary and metadata commands, jsonl elsewhere. ipc is a lossless Arrow stream, valid on cat/head/tail/take/sample.
--columns / --exclude-columns Comma-separated include/exclude lists. Accept globs and nested paths.
--where <predicate> SQL-style row filter, applied before row selection.
--binary-format <none|hex|base64> How binary values are rendered. Default none prints a BINARY_DATA placeholder.
--max-list-items <N> Truncate lists to the first N elements.
--max-cell-width <N> Table only: cut each data cell to N characters.
--float-precision <N> Render floats with exactly N fractional digits.
--with-row-id / --with-row-addr Lance only: append _rowid / _rowaddr.
--branch / --version / --tag / --as-of Lance only: which version to read.
--no-progress Turn off the scan progress indicator on stderr.

--max-list-items, --max-cell-width, and --float-precision are lossy and affect display only. Combining them with --format ipc is an error rather than a silent no-op.

Examples

The dataset below has 200 rows and five columns, one of them a 1536-dimensional embedding.

$ arrs rowcount dataset.lance
200

$ arrs head -n 3 --columns id,label,score dataset.lance
{"id":1,"label":"ham","score":0.568}
{"id":2,"label":"spam","score":0.225}
{"id":3,"label":"ham","score":0.413}

$ arrs tail -n 3 --format csv --exclude-columns emb dataset.lance
id,label,score,split
198,spam,0.93,test
199,ham,0.009,test
200,,0.532,test

$ arrs head -n 2 --where "split = 'test' AND score > 0.9" --columns id,score dataset.lance
{"id":165,"score":0.943}
{"id":176,"score":0.983}

Trim a wide embedding column instead of flooding the terminal:

$ arrs head -n 1 --columns id,emb --max-list-items 4 --float-precision 2 dataset.lance
{"id":1,"emb":[-0.78,-0.76,0.17,0.74,"… (1532 more)"]}

Check the class balance of a label:

$ arrs freq --column label dataset.lance
+-------+-------+---------+
| value | count | percent |
+=========================+
| ham   | 90    | 45.0%   |
|-------+-------+---------|
| spam  | 90    | 45.0%   |
|-------+-------+---------|
| NULL  | 20    | 10.0%   |
+-------+-------+---------+

Summarize a column:

$ arrs stats --columns score --float-precision 3 dataset.lance
+--------+---------+-------+-------+-------+-------+-------+--------+----------+
| column | type    | count | nulls | min   | max   | mean  | stddev | distinct |
+==============================================================================+
| score  | Float64 | 200   | 0     | 0.002 | 0.987 | 0.502 | 0.288  | 180      |
+--------+---------+-------+-------+-------+-------+-------+--------+----------+

Read an earlier version of the same dataset, here before the test split was appended:

$ arrs rowcount --version 1 dataset.lance
160

Pipe a lossless Arrow stream into another tool:

$ arrs cat --where "score > 0.9" dataset.lance --format ipc \
    | duckdb -c "SELECT count(*) FROM read_arrow('/dev/stdin')"

Documentation

License

MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rust_arrs-0.2.1.tar.gz (215.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rust_arrs-0.2.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (54.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

rust_arrs-0.2.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (51.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

rust_arrs-0.2.1-py3-none-macosx_11_0_arm64.whl (49.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file rust_arrs-0.2.1.tar.gz.

File metadata

  • Download URL: rust_arrs-0.2.1.tar.gz
  • Upload date:
  • Size: 215.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rust_arrs-0.2.1.tar.gz
Algorithm Hash digest
SHA256 311d31eb1527f28aea9148df0ed4da2fdf4749e634a6bbf1f1ea324fc8b15697
MD5 1c50127419d0be496c2723ea9c02ebcc
BLAKE2b-256 42c08b8e6008bd01d3fbc3cec1f5fd145c2736a4e6ca14df8f920da19ad13764

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_arrs-0.2.1.tar.gz:

Publisher: release.yml on jonasdedden/arrs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_arrs-0.2.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_arrs-0.2.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de833834c08076b61a7cf0252b44d991d837fb71d26b662c68fd2a352cf15867
MD5 881155070da5e74613c644d2d47c2375
BLAKE2b-256 dabc9c8ef82cbcc563677118fe0815b6c36af57005de66abc0d48da6050ed2b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_arrs-0.2.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on jonasdedden/arrs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_arrs-0.2.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_arrs-0.2.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a38285a521350c0e16566549668695a9cf6e78f565a9138751556cb4805f64f1
MD5 fe1de950d3a7a48f6ff645c1f355f0ad
BLAKE2b-256 5500e57627d0226e2896d42d3c0c541ea9dc571d74507d3ed06966ad8df2d4d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_arrs-0.2.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on jonasdedden/arrs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_arrs-0.2.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_arrs-0.2.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a350b3ae59009aad1df94780c1cc6de44b31bede999cfcd53100b323893c7134
MD5 c01a29b4473d4c63bb9d99ef237fce1e
BLAKE2b-256 59f637488f7963675a9da00be0593d90e2316a8335292219bd3d9bb7adfcfaf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_arrs-0.2.1-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on jonasdedden/arrs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.1 This release

4 files

0.2.0

4 files

0.1.3

4 files

0.1.2

4 files

0.1.1

4 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page