首页 > 解决方案 > 在 R 中合并 2 个大型数据集

问题描述

我正在尝试合并两个大型数据集,因为我需要为我的模型创建一个最终的训练集来运行

head(TrainWithAppevents_rel4)    
event_id  |device_id |gender |age |group| phone_brand |device_model| numbrand nummodel | app_id    
6   6 1476664663289716480      M  19  M22-      åŽä¸º       Mate 7       29      919  4348659952760821248

head(app_labels)    
   app_id |label_id    
1  7324884708820028416        251

第一个数据集现在有唯一的行,因为我已经处理它以删除所有重复项

我希望我的最后一组具有以下列

event_id device_id gender age group phone_brand device_model numbrand nummodel app_id label_id

但是,当我尝试在 R(R 工作室会话)中使用以下内容进行合并时

TrainWithLabels=merge(x=TrainWithAppevents_rel4,y=app_labels,by="app_id",all.x = TRUE)    

我收到以下错误

**Error: cannot allocate vector of size 512.0 Mb**

如果我再次运行,错误会有所不同,但仅限于向量的大小

我的数据集的大小如下:

> dim(TrainWithAppevents_rel4)
[1] 4787796      10    
> dim(app_labels)
[1] 459943      2

有关我使用的机器/R 的更多信息:

> sessionInfo()    
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

我使用基于英特尔 2.6GHz/16GB RAM /64 位操作系统/Windows10/x64 的处理器

我尝试了以下方法:

-通过删除重复和不需要的列来减少数据集,现在第一个数据集中的所有行都是唯一的

- 关闭我笔记本电脑上的所有其他应用程序,然后运行合并 - 仍然失败

- 执行 gc() 然后运行合并

我已经解决了关于 R 的 SO 的类似问题,但是没有一个提供了向前推进的解决方案,而不是特定于 64 位机器上的合并失败

任何人都可以帮助提出解决方案或解决方法以继续前进。

请假设这是我可以执行代码的唯一机器,目前无法通过 zepplin 在 AWS 上运行此 R 脚本。

标签: rmergelarge-data

解决方案


推荐阅读