如何在Python中读取hive分区的parquet文件的列?

问题描述 投票:0回答:1

通常,您会读取 parquet 文件的架构,例如:
import pyarrow.parquet as pq
sch = pq.read_schema(path+filename, memory_map=True)

但这不适用于 hive 分区文件。
尝试添加

partitioning='hive'

选项,但未实现。
如何获取此类文件的列/架构?

python parquet
1个回答
0
投票

您可以使用

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 文件中猜测模式。它也很难确定分区列的类型。

© www.soinside.com 2019 - 2024. All rights reserved.