我有 1024 个镶木地板文件,每个 1mbin 大小。我正在使用 pythondask
将这些 1024 个文件合并到一个文件中,并且我有很多磁盘空间,但是 ram 是有限的。
有没有使用 python 解决这个问题的有效方法dask
?
import dask.dataframe as dd
def generatePath():
for i in range(0,1024):
return "data/2000-" + i +".parquet"
def readDF():
paths = generatePath()
for x in paths:
df = dd.read_parquet(x, columns=['name', 'address'], engine='pyarrow')
yield df
def mergeDF():
allDF = readDF()
df = next(allDF)
for iter_DF in allDF:
df = dd.concat([df,iter_DF])
return df.compute()
这是我的代码,它会抛出内存错误。如果我在引擎盖下错了,请纠正我。该代码正在逐个文件加载并创建每个 DF,然后进行连接。在这种情况下,它不需要很多内存吗?
有没有其他方法可以解决?