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

如何在PyArrow中从Table或Dataset创建ParquetFile对象?

解决ParquetFile.from_table报错的问题

错误原因

pyarrow.parquet.ParquetFile是用来读取已存在的Parquet文件(磁盘文件或字节流)的类,它根本没有from_table这个类方法——Table是Arrow的内存数据结构,和Parquet文件格式是两回事,不能直接转换。

两种正确的解决方案

方案1:直接从原始Parquet文件获取元数据(推荐)

既然你本来就有Parquet文件的路径,完全不需要先转成Table,直接用文件路径创建ParquetFile就行:

import pyarrow.parquet as pq

# 直接用原始文件路径和文件系统创建ParquetFile
pq_file = pq.ParquetFile(PARQUET_FILE_PATH, filesystem=fs)
file_meta = pq_file.metadata

方案2:从已有的Table生成Parquet元数据(仅当Table是处理后的版本时用)

如果你的Table是经过修改后的内存数据,必须从它生成Parquet元数据,需要先把Table序列化为Parquet格式(可以写入内存buffer避免磁盘IO),再用ParquetFile读取:

import pyarrow as pa
import pyarrow.parquet as pq
from io import BytesIO

# 将Table写入内存中的Parquet字节流
buffer = BytesIO()
pq.write_table(table, buffer)
buffer.seek(0)  # 重置指针到流开头

# 从内存流创建ParquetFile并获取元数据
pq_file = pq.ParquetFile(buffer)
file_meta = pq_file.metadata

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:04:56