合并 b/w 两个给出 MemoryError 的数据帧

Merge b/w two dask data frame giving MemoryError

正在读取 parquet 文件

df_ss_parq = dd.read_parquet("trainSearchStream.parquet/")
df_ai_parq = dd.read_parquet("AdsInfo.parquet/")

合并两个数据集

df_train =(df_ss_parq.merge(df_ai,on="ad_id",how="left")
       ).compute()

内存:16GB

我试过在列 "ad_id" 上使用索引,这使速度更快但显示相同的错误。

trainSearchStream 大小 = 17 GB

AdsInfo 大小 = 17 GB

有人知道如何解决吗?

我建议使用 SQL 引擎,例如 Impala 或 Drill 来进行连接,将结果写入新的 Parquet 文件。 Python 数据堆栈目前不太适合在内存受限的环境中处理大型表之间的连接。