如何从Parquet文件读取指定行列?含首行及指定列读取需求
读取Parquet文件的指定列与第一行
方法一:基于Pandas快速实现
你已经能通过pd.read_parquet指定列读取,只需在后面追加取行操作就能拿到第一行:
import pandas as pd # 读取指定列并仅保留第一行(返回DataFrame格式) df = pd.read_parquet(filename, columns=['first_col','third_col','fifth_col']).head(1) # 或者用iloc精准定位第一行(同样返回DataFrame) df = pd.read_parquet(filename, columns=['first_col','third_col','fifth_col']).iloc[[0]] # 如果想要单一行的Series格式,用这个 row_series = pd.read_parquet(filename, columns=['first_col','third_col','fifth_col']).iloc[0]
这种方法简单直接,适合文件体积不大的场景。
方法二:用PyArrow高效读取(大文件首选)
如果你的Parquet文件体积较大,先读取全列数据再筛选第一行会浪费内存。可以用PyArrow直接读取目标行组的指定列,再提取第一行:
import pyarrow.parquet as pq # 打开Parquet文件对象 parquet_file = pq.ParquetFile(filename) # 读取第一个行组的指定列(Parquet按行组存储,第一个行组的首行就是文件第一行) row_group_table = parquet_file.read_row_group(0, columns=['first_col','third_col','fifth_col']) # 转成DataFrame并取第一行 df = row_group_table.to_pandas().head(1)
这种方式只加载必要的行组和列,内存占用更低,处理大文件时效率更高。
内容的提问来源于stack exchange,提问作者Susan
相关产品推荐
相关产品推荐

