Apache Parquet(データ形式)

Apache(アパッチ)の Parquet(パルケ)は効率の良いデータ格納形式です。フランス語 parquet [paʀ-kε] は床の寄せ木張りのことです。Parquetのマークがそれを表しています。英語(フランス語)でしゃべるなら「パルケ」より「ぱぁケー」と発音すればわかりやすいと思います。

Parquet形式のファイルを読むには、pandasでは次のようにします。

import pandas as pd

df = pd.read_parquet("filename.parquet")

デフォルトではpyarrowというエンジンを使いますので、pandas以外にpyarrowもインストールが必要です(pip install pyarrow)。さらにfastparquetも使うことができます(pip install fastparquet)。こちらを使うには次のようにします。

df = pd.read_parquet("filename.parquet", engine="fastparquet")

Parquetは内部では列ごとにデータが並んでいますので、次のように、特定の列だけ読み出すことが効率よくできます。

df = pd.read_parquet("filename.parquet", columns=["foo", "bar"])

書き出しは次のようにします。

df.to_parquet("filename.parquet")

オプションとして、先ほどの engine 以外に、圧縮方式 compression が指定できます。デフォルトの圧縮 snappy 以外に、gzipbrotlilz4zstd が使えます。