繁体   English   中英

"如何在 python 中使用生成器循环大型镶木地板文件?"

[英]How to loop large parquet file with generators in python?

是否可以使用生成器打开镶木地板文件并逐行迭代? 这是为了避免将整个 parquet 文件加载到内存中。

该文件的内容是 pandas DataFrame。

您不能按行迭代,因为它不是存储方式。 您可以按如下方式遍历行组:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM