有效折叠实木复合地板中的行组

时间:2019-05-17 16:03:10

标签: python memory compression parquet

我有一个很大的Parquet文件,其中包含许多小行组。我想用一个(更大)的行组生成一个新的Parquet文件,并且我正在使用Python进行操作。我可以做类似的事情:

import pyarrow.parquet as pq
table = pq.read_table('many_tiny_row_groups.parquet')
pq.write_table(table, 'one_big_row_group.parquet')

# Lots of row groups...
print (pq.ParquetFile('many_tiny_row_groups.parquet').num_row_groups)
# Now, only 1 row group...
print (pq.ParquetFile('one_big_row_group.parquet').num_row_groups)

但是,这要求我立即将整个Parquet文件读入内存。我想避免这样做。是否有某种“流”方法可以使内存占用量保持较小?

1 个答案:

答案 0 :(得分:0)

take的文档指出了可能迭代大到足以容纳内存的数据集的可能性。要阅读,您可以使用:

fastparquet

要写入,您可以pf = ParquetFile('myfile.parquet') for df in pf.iter_row_groups(): print(df.shape) # process sub-data-frame df 到文件。

相关问题