00

The short answer

  • Apache Parquet is a binary column-oriented data format that stores tables in row groups and column chunks, with readability depending on the reader's support for the features used.
  • On a Windows or Mac computer with Python and PyArrow available, run import pyarrow.parquet as pq, then table = pq.read_table('file.parquet'). Use table.to_pandas() for a pandas DataFrame. To read selected columns, use pq.read_table('file.parquet', columns=['column_name']); for a row group, use pq.ParquetFile('file.parquet').read_row_group(0). These examples read a local file on a computer; for a file on your phone, copy it to a computer and use the same steps.
  • Parquet is not expected to contain executable content, but it can hold arbitrary or sensitive data. Parser implementation and configuration matter: CVE-2025-46762 concerns arbitrary code execution in parquet-avro using specific or reflect models; the generic model is unaffected by that vulnerability, and the record recommends upgrading to 1.15.2. This is not a guarantee against other risks. Modular encryption can leave some regions unencrypted, and AES CTR alone does not authenticate data.
01

Apache Parquet files: open, read and convert

The registered extension is .parquet and the media type is application/vnd.apache.parquet. Each row group contains column chunks. Metadata near the end of the file lets a reader locate the required chunks; it is followed by a four-byte little-endian metadata length and an ending marker. Ordinary files use PAR1 markers, while encrypted-footer files use PARE. See the [official format description](https://parquet.apache.org/docs/file-format/).

Keep the original

Read the file into an Arrow table, then use table.to_pandas() if a pandas workflow is needed. To convert Parquet to CSV, export through a CSV-capable tool after reading. Check the result: application-level details such as a pandas index may not carry over. To write Parquet, use pq.write_table(table, 'output.parquet'). Check index handling before a round trip: an index omitted when creating the Arrow table will not reappear after reading Parquet.

02

How to open it

On a Windows or Mac computer with Python and PyArrow available, run import pyarrow.parquet as pq, then table = pq.read_table('file.parquet'). Use table.to_pandas() for a pandas DataFrame. To read selected columns, use pq.read_table('file.parquet', columns=['column_name']); for a row group, use pq.ParquetFile('file.parquet').read_row_group(0). These examples read a local file on a computer; for a file on your phone, copy it to a computer and use the same steps.

I only want to read it

On a Windows or Mac computer with Python and PyArrow available, run import pyarrow.parquet as pq, then table = pq.read_table('file.parquet'). Use table.to_pandas() for a pandas DataFrame. To read selected columns, use pq.read_table('file.parquet', columns=['column_name']); for a row group, use pq.ParquetFile('file.parquet').read_row_group(0). These examples read a local file on a computer; for a file on your phone, copy it to a computer and use the same steps.

I need to send it to someone

Read the file into an Arrow table, then use table.to_pandas() if a pandas workflow is needed. To convert Parquet to CSV, export through a CSV-capable tool after reading. Check the result: application-level details such as a pandas index may not carry over. To write Parquet, use pq.write_table(table, 'output.parquet'). Check index handling before a round trip: an index omitted when creating the Arrow table will not reappear after reading Parquet.

03

File safety

Parquet is not expected to contain executable content, but it can hold arbitrary or sensitive data. Parser implementation and configuration matter: CVE-2025-46762 concerns arbitrary code execution in parquet-avro using specific or reflect models; the generic model is unaffected by that vulnerability, and the record recommends upgrading to 1.15.2. This is not a guarantee against other risks. Modular encryption can leave some regions unencrypted, and AES CTR alone does not authenticate data.

Stop if any of this looks off

An unknown sender, a name ending in two extensions, or contents that do not match the extension — check before you open it.

04

Converting it

Read the file into an Arrow table, then use table.to_pandas() if a pandas workflow is needed. To convert Parquet to CSV, export through a CSV-capable tool after reading. Check the result: application-level details such as a pandas index may not carry over. To write Parquet, use pq.write_table(table, 'output.parquet'). Check index handling before a round trip: an index omitted when creating the Arrow table will not reappear after reading Parquet.

Before you convert

Convert a copy, never the original, then compare quality, metadata, and layout against what you started with.

05

Common questions

What is a Parquet file used for?

A Parquet file stores tabular data in a binary column-oriented layout. Row groups contain column chunks, allowing a compatible reader to retrieve selected columns.

How do I read a Parquet file with Python?

With PyArrow available, run import pyarrow.parquet as pq and table = pq.read_table('file.parquet'). The result is an Arrow table; table.to_pandas() converts it to a pandas DataFrame.

How do I open a Parquet file on Windows?

In a Windows Python environment with PyArrow available, read the local file with pyarrow.parquet.read_table('file.parquet'). Convert the resulting table with to_pandas() if you need a DataFrame. The reader must support the file's features.

How do I open a Parquet file on Mac?

In a Mac Python environment with PyArrow available, use pyarrow.parquet.read_table('file.parquet'). For selected columns, supply columns=['column_name']. Compatibility depends on the features used in the file.

How can I open a Parquet file on a phone?

Copy the file from your phone to a computer, then read it with Python and PyArrow using pyarrow.parquet.read_table('file.parquet'). No particular phone app is recommended here.

How do I resolve a Parquet reader compatibility error?

Check whether the reader supports the file's encodings and Data Page V2. An older reader may fail to decode unsupported features; an unrecognized logical type may instead appear as its underlying physical type. Use a reader that supports the required features.

Should I read an entire Parquet table or only selected columns?

Read the entire table when you need all columns. If you need only certain fields, use the columns argument in PyArrow. Reading individual row groups is another option for avoiding a full-table read.

How can I convert Parquet to CSV?

Read Parquet with PyArrow and, if needed, convert the Arrow table to pandas with to_pandas(). Then export using a CSV-capable tool. Check the result: application-level details such as a pandas index may not carry over.

Why is the index missing after a Parquet to pandas round trip?

If the original pandas index was not preserved when creating the Arrow table, writing and reading Parquet will not restore it. Check the index-preservation choice before saving and compare the returned DataFrame with the original.

Is a Parquet file safe to open?

The extension alone cannot establish safety. Parquet can contain sensitive data, and readers can have vulnerabilities. CVE-2025-46762 affects parquet-avro specific and reflect reading modes; its record recommends upgrading to 1.15.2. Generic mode is unaffected by that particular vulnerability.

What should I check before trying to read an encrypted Parquet file?

Check that the reader supports the file's encryption features. Modular encryption can protect columns and the footer separately while leaving other regions in plaintext. Encryption alone does not establish complete integrity protection: AES CTR itself provides no authentication.

06

Related formats

Sources

IANA — application/vnd.apache.parquet · IANA 官方媒体类型登记

Apache Parquet — File Format · Apache Parquet 官方格式文档

Apache Arrow — Reading and Writing Single Files · Apache Arrow 官方使用文档

Apache Parquet — Parquet format versions · Apache Parquet 官方兼容性文档

CVE-2025-46762 · CVE 官方漏洞记录;分配机构为 Apache Software Foundation

Apache Parquet — Modular Encryption · Apache Parquet 官方加密规范