0 python out-of-memory dataframe pandas parquet
我一直在尝试合并小镶木地板文件,每个文件有 10 k 行,并且每组小文件的数量将为 60-100。因此,合并后的 parquet 文件中至少包含约 600k 行。
我一直在尝试使用 pandas concat。它可以很好地合并大约 10-15 个小文件。
但由于该集合可能由 50-100 个文件组成。运行 python 脚本时违反内存限制时该进程被杀死
所以我正在寻找一种内存有效的方法来合并 100 个文件集中任意数量的小镶木地板
使用 pandas read parquet 来读取每个单独的数据帧并将它们与 pd.conact(all dataframe) 组合起来
除了 pandas 之外还有更好的库吗?或者如果可能的话,在 pandas 中如何高效地完成它。
时间不是约束。它也可以运行很长时间。
您可以逐个打开文件并将它们附加到 parquet 文件中。最好使用 pyarrow 来实现此目的。
import pyarrow.parquet as pq
files = ["table1.parquet", "table2.parquet"]
schema = pq.ParquetFile(files[0]).schema_arrow
with pq.ParquetWriter("output.parquet", schema=schema) as writer:
for file in files:
writer.write_table(pq.read_table(file, schema=schema))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9510 次 |
| 最近记录: |