Pandas DataFrame.to_parquet
- это тонкая оболочка для table = pa.Table.from_pandas(...)
и pq.write_table(table, ...)
(см. pandas.parquet.py#L120
), а pq.write_table
не поддерживает запись секционированных наборов данных.Вместо этого следует использовать pq.write_to_dataset
.
import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq
df = pd.DataFrame(yourData)
table = pa.Table.from_pandas(df)
pq.write_to_dataset(
table,
root_path='output.parquet',
partition_cols=['partone', 'parttwo'],
)
Для получения дополнительной информации см. Документацию pyarrow .
В общем, я всегда использовал бы API PyArrow непосредственно при чтении/ написание паркетных файлов, поскольку оболочка Pandas довольно ограничена в своих возможностях.