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

时间:2017-11-29 06:33:21

标签: python pandas merge parquet dask

阅读实木复合地板文件

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()

RAM:16 GB

我尝试在列" ad_id"上使用索引这使它更快但显示相同的错误。

trainSearchStream size = 17 GB

AdsInfo size = 17 GB

任何人都知道如何解决它?

1 个答案:

答案 0 :(得分:1)

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