You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中获取Hive分区Parquet文件的列与Schema?

读取Hive分区Parquet文件Schema的解决方案

常规通过pq.read_schema()读取Parquet Schema的方式对Hive分区文件无效,且partitioning='hive'参数目前尚未实现,可通过以下两种方式获取包含分区列的完整Schema:

方法一:基于数据集读取空数据获取Schema

利用ParquetDataset识别Hive分区,读取0行数据来提取完整Schema,无需加载实际数据:

import pyarrow.parquet as pq

# 指定Hive分区目录初始化数据集
dataset = pq.ParquetDataset("你的分区目录路径", partitioning='hive')
# 读取0行数据,仅获取Schema信息
empty_table = dataset.read(n_rows=0)
full_schema = empty_table.schema
print(full_schema)

方法二:手动合并基础Schema与分区列

若已知分区列的名称和类型,可先读取单个Parquet文件的基础Schema,再手动添加分区列:

import pyarrow.parquet as pq
from pyarrow import schema, field

# 读取单个Parquet文件的基础Schema
base_schema = pq.read_schema("单个Parquet文件路径", memory_map=True)

# 定义分区列(示例为year和month,根据实际情况修改)
partition_fields = [
    field("year", type="int32"),
    field("month", type="int32")
]

# 合并得到完整Schema
full_schema = schema(base_schema.fields + partition_fields)
print(full_schema)

内容的提问来源于stack exchange,提问作者lmocsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:38:10