pyorc
Python module for reading and writing Apache ORC file format.
What it is and what it does
PyORC is a Python binding to Apache ORC's C++ API for reading and writing ORC (Optimized Row Columnar) files, a columnar storage format commonly used in data warehousing and analytics. It provides a straightforward, csv-module-like interface for streaming ORC data in and out of Python applications. The package wraps compiled C++ code, so installation uses pre-built wheels for Python 3.10–3.12 on standard platforms; it depends on tzdata and backports.zoneinfo for timezone handling.
The library is in alpha status but actively maintained, with recent releases and a small but engaged user base. It is suitable for applications that need to integrate ORC file I/O into Python data pipelines, particularly where compatibility with Apache Hadoop ecosystems or existing ORC infrastructure is required.
Use it for:
- Reading ORC files exported from Hive, Spark, or other Apache Hadoop ecosystem tools into Python for analysis.
- Writing Python data structures to ORC format for storage or transfer to downstream Hadoop-based systems.
- Building ETL pipelines that consume or produce ORC columnar data without intermediate format conversion.
- Integrating ORC I/O into data validation or quality-assurance workflows that run in Python.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyORC reads and writes Apache ORC files using Python, wrapping the Apache ORC C++ API and providing an interface similar to Python's csv module.
Yes, if you need to read or write ORC files in Python and are working with Python 3.10 or newer. The permissive Apache-2.0 license, active maintenance, zero known vulnerabilities, and pre-built wheels for common platforms make it a low-friction choice. The alpha status and small user base mean less community documentation, so verify that ORC 1.7 support and the package's feature set match your use case before committing to a production dependency.
Install
pyorc on PyPI
pip
pip install pyorcuv
uv add pyorcpoetry
poetry add pyorcInstalling pyorc
Before you install
Medium install friction due to compiled C++ bindings; wheels are pre-built for Python 3.10–3.12 on common platforms (macOS, Linux, Windows), reducing build requirements. Repository is active with a recent release (125 days ago) and steady maintenance.
License in practice
Apache-2.0 is permissive; you may use, modify, and distribute pyorc and derivative works freely, provided you include a copy of the license and note any changes.
Quickstart
import pyorc
with open("./data.orc", "rb") as data:
reader = pyorc.Reader(data)
for row in reader:
print(row)
Requires Python 3.10 or newer and ORC 1.7; compiled wheels are available for common platforms but may require a C++ runtime on some systems.
Verify before relying
- Whether the package handles all ORC 1.7 features or only a subset of the specification.
- Performance characteristics and memory usage for large ORC files.
- Whether schema inference is supported when reading files without explicit schema specification.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4.0,>=3.6) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — tzdata, backports.zoneinfo |
| Maintenance | actively maintained — 125 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 357,185/month — #7,273 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyorc-0.11.0-cp310-cp310-macosx_10_13_universal2.whl; pyorc-0.11.0-cp310-cp310-macosx_10_13_x86_64.whl; pyorc-0.11.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pyorc-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pyorc-0.11.0-cp310-cp310-musllinux_1_2_aarch64.whl; pyorc-0.11.0-cp310-cp310-musllinux_1_2_x86_64.whl; pyorc-0.11.0-cp310-cp310-win_amd64.whl; pyorc-0.11.0-cp311-cp311-macosx_10_13_universal2.whl; pyorc-0.11.0-cp311-cp311-macosx_10_13_x86_64.whl; pyorc-0.11.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pyorc-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pyorc-0.11.0-cp311-cp311-musllinux_1_2_aarch64.whl; pyorc-0.11.0-cp311-cp311-musllinux_1_2_x86_64.whl; pyorc-0.11.0-cp311-cp311-win_amd64.whl; pyorc-0.11.0-cp312-cp312-macosx_10_13_universal2.whl; pyorc-0.11.0-cp312-cp312-macosx_10_13_x86_64.whl; pyorc-0.11.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pyorc-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pyorc-0.11.0-cp312-cp312-musllinux_1_2_aarch64.whl; pyorc-0.11.0-cp312-cp312-musllinux_1_2_x86_64.whl
Keywords: python3, orc, apache-orc
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
csv23Provides a Python 3-style unicode CSV API that…
permissive · top 15,000 on PyPI
libconfReads and writes configuration files in…
permissive · top 15,000 on PyPI
backports.csvProvides Python 3's csv module API for Python…
unclear · top 15,000 on PyPI
edn-formatReads and writes EDN (Extensible Data Notation)…
permissive · top 5,000 on PyPI
pyexcel-ods3Reads, manipulates, and writes data in ODS…
permissive · top 15,000 on PyPI
aiocsvProvides async-compatible CSV reading and…
permissive · top 5,000 on PyPI
pyexcel-xlsxReads, manipulates, and writes xlsx and xlsm…
permissive · top 5,000 on PyPI
kaldi-python-ioReads and writes Kaldi binary archives,…
permissive · top 15,000 on PyPI
pylightxlReads and writes Microsoft Excel files (.xlsx,…
permissive · top 15,000 on PyPI
RoffIORoffio reads and writes Roxar Open File Format…
copyleft · top 15,000 on PyPI