結論から
- Apache Parquetは、表を行グループと列チャンクに分けて保存するバイナリの列指向データ形式です。読み込めるかどうかは使用機能に対する読み取り側の対応状況に依存します。
- PythonとPyArrowを利用できるWindowsまたはMacで、import pyarrow.parquet as pqに続けてtable = pq.read_table('file.parquet')を実行します。table.to_pandas()でDataFrameに変換できます。列指定はpq.read_table('file.parquet', columns=['column_name'])、行グループ指定はpq.ParquetFile('file.parquet').read_row_group(0)です。これらはコンピューター上のローカルファイルを読む例です。スマートフォンにあるファイルは、コンピューターにコピーして同じ手順で読み込んでください。
- Parquetは実行可能な内容を含むことを想定していませんが、任意のデータや機密情報を保存できます。読み取り実装と設定には注意が必要です。CVE-2025-46762はparquet-avroのspecificまたはreflectモデルでの任意コード実行に関するもので、genericモデルはこの脆弱性の影響を受けません。記録では1.15.2への更新を推奨していますが、他のリスクがなくなることを意味しません。モジュール暗号化でも平文領域が残る場合があり、AES CTR自体には認証機能がありません。
Apache Parquetファイルの開き方・読み込み・変換
登録拡張子は.parquet、メディアタイプはapplication/vnd.apache.parquetです。各行グループは列チャンクを含みます。末尾付近のメタデータで必要なチャンクを特定し、その後に4バイトのリトルエンディアン形式のメタデータ長と終端マーカーが続きます。通常のファイルはPAR1、フッターを暗号化したファイルはPAREを使います。[公式の形式説明](https://parquet.apache.org/docs/file-format/)を参照してください。
Arrowテーブルとして読み込み、必要ならtable.to_pandas()で変換します。ParquetをCSVに変換する場合は、その後にCSV出力対応のツールで書き出します。pandasのインデックスなど、アプリケーション固有の情報が失われる場合があるため、変換結果を確認してください。Parquetの保存にはpq.write_table(table, 'output.parquet')を使います。Arrowテーブル作成時に元のインデックスを保持しなければ、保存後に読み直しても復元されません。
開き方
PythonとPyArrowを利用できるWindowsまたはMacで、import pyarrow.parquet as pqに続けてtable = pq.read_table('file.parquet')を実行します。table.to_pandas()でDataFrameに変換できます。列指定はpq.read_table('file.parquet', columns=['column_name'])、行グループ指定はpq.ParquetFile('file.parquet').read_row_group(0)です。これらはコンピューター上のローカルファイルを読む例です。スマートフォンにあるファイルは、コンピューターにコピーして同じ手順で読み込んでください。
PythonとPyArrowを利用できるWindowsまたはMacで、import pyarrow.parquet as pqに続けてtable = pq.read_table('file.parquet')を実行します。table.to_pandas()でDataFrameに変換できます。列指定はpq.read_table('file.parquet', columns=['column_name'])、行グループ指定はpq.ParquetFile('file.parquet').read_row_group(0)です。これらはコンピューター上のローカルファイルを読む例です。スマートフォンにあるファイルは、コンピューターにコピーして同じ手順で読み込んでください。
Arrowテーブルとして読み込み、必要ならtable.to_pandas()で変換します。ParquetをCSVに変換する場合は、その後にCSV出力対応のツールで書き出します。pandasのインデックスなど、アプリケーション固有の情報が失われる場合があるため、変換結果を確認してください。Parquetの保存にはpq.write_table(table, 'output.parquet')を使います。Arrowテーブル作成時に元のインデックスを保持しなければ、保存後に読み直しても復元されません。
安全チェック
Parquetは実行可能な内容を含むことを想定していませんが、任意のデータや機密情報を保存できます。読み取り実装と設定には注意が必要です。CVE-2025-46762はparquet-avroのspecificまたはreflectモデルでの任意コード実行に関するもので、genericモデルはこの脆弱性の影響を受けません。記録では1.15.2への更新を推奨していますが、他のリスクがなくなることを意味しません。モジュール暗号化でも平文領域が残る場合があり、AES CTR自体には認証機能がありません。
送り主が分からない、拡張子が二重になっている、中身が拡張子と合わない——一つでも当てはまるなら、開く前に確かめてください。
変換するときは
Arrowテーブルとして読み込み、必要ならtable.to_pandas()で変換します。ParquetをCSVに変換する場合は、その後にCSV出力対応のツールで書き出します。pandasのインデックスなど、アプリケーション固有の情報が失われる場合があるため、変換結果を確認してください。Parquetの保存にはpq.write_table(table, 'output.parquet')を使います。Arrowテーブル作成時に元のインデックスを保持しなければ、保存後に読み直しても復元されません。
元ファイルではなくコピーを変換し、変換後に画質・メタデータ・レイアウトを元と見比べてください。
よくある質問
Parquetファイルとは何で、何に使いますか?
表形式のデータを列単位で保存するバイナリファイルです。行グループ内に列チャンクがあり、対応する読み取りツールは必要な列だけを取得できます。
PythonでParquetファイルを読み込む方法は?
PyArrowを利用できる環境でimport pyarrow.parquet as pqとtable = pq.read_table('file.parquet')を実行します。結果はArrowテーブルです。table.to_pandas()でpandasのDataFrameに変換できます。
WindowsでParquetファイルを開く方法は?
WindowsのPython環境でPyArrowを利用し、pyarrow.parquet.read_table('file.parquet')で読み込みます。必要に応じてto_pandas()でDataFrameに変換します。ファイルが使用する機能への対応が必要です。
MacでParquetファイルを開く方法は?
MacのPython環境でPyArrowを利用し、pyarrow.parquet.read_table('file.parquet')で読み込みます。columns=['column_name']で列を指定できます。読み取り側がファイルの使用機能に対応しているか確認してください。
スマートフォンでParquetファイルを開く方法は?
ファイルをスマートフォンからコンピューターにコピーし、PythonとPyArrowのpyarrow.parquet.read_table('file.parquet')で読み込んでください。ここでは特定のスマートフォンアプリは推奨していません。
Parquetの互換性エラーにはどう対処しますか?
読み取り側がファイルのエンコーディングやData Page V2に対応しているか確認します。古い読み取り側は未対応の機能を復号できない場合があります。未知の論理型は基礎となる物理型で返される場合もあるため、必要な機能に対応したものを使います。
Parquetは表全体と必要な列だけのどちらを読み込むべきですか?
すべての列が必要なら表全体を読み込みます。一部の列だけならPyArrowのcolumns引数を使います。行グループ単位で読み込む方法もあり、毎回表全体を読む必要を減らせます。
ParquetをCSVに変換する方法は?
PyArrowで読み込み、必要ならto_pandas()で変換した後、CSV出力対応ツールで書き出します。pandasのインデックスなど、アプリケーション固有の情報が失われる場合があるため、変換結果を確認してください。
Parquetからpandasに戻すとインデックスが消える原因は?
元のpandasインデックスをArrowテーブル作成時に保持しなかった場合、Parquetに保存して読み直しても復元されません。保存前にインデックスの保持方法を確認し、読み込み後のDataFrameと元データを比較してください。
Parquetファイルを開くのは安全ですか?
拡張子だけでは判断できません。機密情報を含む可能性があり、読み取り側に脆弱性がある場合もあります。CVE-2025-46762はparquet-avroのspecificとreflectを対象とし、1.15.2への更新を推奨しています。genericはこの脆弱性の影響を受けません。
暗号化されたParquetファイルを読み込む前に何を確認しますか?
読み取り側が使用されている暗号化機能に対応しているか確認します。列とフッターを別々に保護できる一方、平文領域が残る場合があります。AES CTR自体には認証がないため、暗号化だけで完全な整合性保護があるとは判断できません。
関連する形式
参考資料
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 官方加密规范