Parquet

Parquetファイルとは

大量のデータのための列指向の保存形式。CSV よりずっと小さく、ずっと速く問い合わせられます。

Parquet とは何か

Parquet はバイナリ形式です。これを知っているプログラムにしか意味を持ちません。 長期保存とプログラム間のデータ受け渡しのために使われます。

拡張子は .parquet、正式名称は Apache Parquet です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。

Parquet はどこから来たのか

Apache Software Foundation が 2013 年に公開しました。

古さが役に立つのは、ごく実務的な理由からです。形式が古いほど、それを覚える時間が多くのプログラムに与えられてきたということだからです。

仕様は公開されています

誰でも、許可を求めることなく、ライセンス料も払わずに実装できます。この形式が数多くのプログラムに載っているのはそのためであり、20 年前に書かれたファイルが今も開けるのもそのためです。

捨てられるものはありません

Parquet ファイルは中身をそのまま保存します。保存し直しても何も変わらないので、開いて、直して、また保存する——それを何度繰り返しても劣化は積み上がりません。これが、渡すための形式ではなく作業のための形式である理由です。

自分を守るために何を備えているか

Parquet ファイルは壊れたファイルが黙って誤読されるのではなく、壊れていると分かるようにするチェックサムと必要なら暗号化を備えています。

暗号化されたファイルは、変換の前に解除する必要があります。ここでも、ほかのどこでも同じです。パスワードはコンバーターが通り抜けられる類のものではありませんし、通り抜けられると称するものには、そもそもファイルを渡すべきではありません。

Parquet を開けるのは何か

pandas、Apache Spark、DuckDBが読めますし、同じ種類のプログラムならたいてい読めます。

ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。

ブラウザーで開く

これを読めるブラウザーはありません。

これを変換するいちばんよくある理由がこれです。形式が悪いのではありません。ファイルを見せたい場所が、それを読めないというだけのことです。

渡すための形式です

Parquet は渡すために作られたもので、中で作業するためのものではありません。編集は可能ですが、快適だったためしはありません。賢い道は、元のファイルへ戻ってもう一度書き出すほうを通ります。

この形式でよく起きること

繰り返し挙がる不満はこれです。本来の分野の外では対応がまばら。

どれも、この形式を避ける理由にはなりません。どれかに不意を突かれる前に知っておくべきことがら、というだけです。これは別の主張であり、そして役に立つほうの主張です。

基本情報

Parquetフォーマットの識別子と出自。
拡張子.parquet
メディアタイプapplication/vnd.apache.parquet
公開元Apache Software Foundation
初版2013

Parquetを別のフォーマットに変換する

別のフォーマットをParquetに変換する

Parquetの代わりに検討できるフォーマット