在R中合并2个大型数据集

时间:2018-04-24 13:57:27

标签: r merge large-data

我正在尝试合并两个大型数据集,因为我需要为我的模型创建最终的列车集

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

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

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

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

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

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

我收到以下错误

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

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

我的数据集的大小如下:

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

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

@AutoConfigureAfter({DataSourceAutoConfiguration.class, ...})
public class FlywayAutoConfiguration { 
  ...

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

我尝试了以下内容:

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

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

- 执行gc()然后运行merge

我已经在SO上针对R进行了类似的问题,但是他们都没有提供一个向前推进的解决方案,也没有特定于64位计算机上的合并失败

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

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

0 个答案:

没有答案