import pyarrow.parquet as pq
sch = pq.read_schema(path+filename, memory_map=True)
但这不适用于 hive 分区文件。
尝试添加
partitioning='hive'
选项,但未实现。
如何获取此类文件的列/架构?
您可以使用
pyarrow.parquet.ParquetDataset.schema
:
import pyarrow as pa
import pyarrow.parquet as pq
table = pa.table(
{
"col1": pa.array(['a', 'a', 'b'], pa.string()),
"col2": pa.array([1, 2, 3], pa.int32()),
}
)
pq.write_to_dataset(
table,
"./dataset",
['col1']
)
schema = pq.ParquetDataset("./dataset").schema
但是您可能会感到意外,因为
write_to_dataset
不写入任何元数据。因此 ParquetDataset
必须从它能找到的第一个 parquet 文件中猜测模式。它也很难确定分区列的类型。