【发布时间】:2018-06-08 07:32:24
【问题描述】:
是否可以使用生成器打开 parquet 文件并逐行迭代?这是为了避免将整个 parquet 文件加载到内存中。
文件内容为pandas DataFrame。
【问题讨论】:
标签: python pandas dataframe generator parquet
是否可以使用生成器打开 parquet 文件并逐行迭代?这是为了避免将整个 parquet 文件加载到内存中。
文件内容为pandas DataFrame。
【问题讨论】:
标签: python pandas dataframe generator parquet
您不能逐行迭代,因为它不是存储方式。您可以按如下方式遍历行组:
from fastparquet import ParquetFile
pf = ParquetFile('myfile.parq')
for df in pf.iter_row_groups():
process sub-data-frame df
【讨论】:
您可以使用 tensorflow_io 进行迭代。
import tensorflow_io as tfio
dataset = tfio.IODataset.from_parquet('myfile.parquet')
for line in dataset.take(3):
# print the first 3 lines
print(line)
【讨论】:
如果通常情况下,Parquet 以多个文件的形式存储在一个目录中,您可以运行:
for parquet_file in glob.glob(parquet_dir + "/*.parquet"):
df = pd.read.parquet(parquet_file)
for value1, value2, value3 in zip(df['col1'],df['col2'],df['col3']):
# Process row
del df
一次只能在内存中保存一个文件。
【讨论】: