Skip to main content

An interactive Python TUI for visualizing, exploring, and analyzing Parquet files directly in your terminal.

Project description

parqv

Python Version License PyPI version Built with Textual

parqv is a Python-based interactive TUI (Text User Interface) tool designed to explore, analyze, and understand Parquet files directly within your terminal. Forget juggling multiple commands; parqv provides a unified, visual experience.

💻 Demo (Placeholder)

parqv.gif

🤔 Why parqv?

  1. Unified Interface: Launch parqv <file.parquet> to access metadata, schema, data preview, column statistics, and row group details all within a single, navigable terminal window. No more memorizing different commands.
  2. Interactive Exploration:
    • 🖱️ Keyboard & Mouse Driven: Navigate using familiar keys (arrows, hjkl, Tab) or even your mouse (thanks to Textual).
    • 📜 Scrollable Views: Easily scroll through large schemas, data tables, or row group lists.
    • 🌲 Expandable Schema: Visualize and navigate complex nested structures (Structs, Lists) effortlessly.
    • 📊 Dynamic Stats: Select a column and instantly see its detailed statistics and distribution.
  3. Enhanced Analysis & Visualization:
    • 🎨 Rich Display: Leverages rich and Textual for colorful, readable tables and syntax-highlighted schema.
    • 📈 Quick Stats: Go beyond min/max/nulls. See means, medians, quantiles, distinct counts, frequency distributions, and even text-based histograms.
    • 🔬 Row Group Deep Dive: Inspect individual row groups to understand compression, encoding, and potential data skew.

✨ Features (TUI Mode)

  • Interactive TUI: Run parqv <file.parquet> to launch the main interface.
  • Metadata Panel: Displays key file information (path, creator, total rows, row groups, compression, etc.).
  • Schema Explorer:
    • Interactive, collapsible tree view for schemas.
    • Clearly shows column names, data types (including nested types), and nullability.
    • Syntax highlighting for better readability.
  • Data Table Viewer:
    • Scrollable table preview of the file's data.
    • Handles large files by loading data pages on demand.
    • (Planned) Column selection/reordering.
  • Row Group Inspector:
    • List all row groups with key stats (row count, compressed/uncompressed size).
    • Select a row group to view per-column details (encoding, size, stats within the group).

🚀 Getting Started

1. Prerequisites:

  • Python: Version 3.10 or higher.
  • pip: The Python package installer.

2. Install parqv:

  • Open your terminal and run:
    pip install parqv
    
  • Updating parqv:
    pip install --upgrade parqv
    

3. Run parqv:

  • Point parqv to your Parquet file:
    parqv /path/to/your/data.parquet
    
  • The interactive TUI will launch. Use your keyboard (and mouse, if supported by your terminal) to navigate:
    • Arrow Keys / h,j,k,l: Move focus within lists, tables, trees.
    • Tab / Shift+Tab: Cycle focus between different panes/widgets.
    • Enter: Select items, expand/collapse tree nodes.
    • View Switching Keys (Examples - check help): m (Metadata), s (Schema), d (Data), t (Stats), g (Row Groups).
    • PageUp / PageDown / Home / End: Scroll long lists or tables.
    • ?: Show help screen with keybindings.
    • q / Ctrl+C: Quit parqv.

📄 License

Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Project details


Download files

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

Source Distribution

parqv-0.1.0.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

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

parqv-0.1.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file parqv-0.1.0.tar.gz.

File metadata

  • Download URL: parqv-0.1.0.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for parqv-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b4876fa00d873d074b4c708565af067865f843c065bd34b83338cb1b97913f89
MD5 2901a48cfd9f6acbfde1469b284e0c13
BLAKE2b-256 ac5ce9d3acc095bf1cd5fbb05962745e9dbbbe0c1fc97c29072a5353724684fa

See more details on using hashes here.

File details

Details for the file parqv-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: parqv-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for parqv-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cfcba93fbc0b773c2d397a698bfc5c8df547f9c923b72fc20ae77113f2290a17
MD5 c7164525e0ed45c2e3dc0ff54bd8ded1
BLAKE2b-256 c6dc0852ce7aa182033668b5a8b3f7817b463ed14a4140d17a3ea7143d93a874

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page