作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
R语言的一大问题是,受制于内存(RAM)的大小。在今年的国际R会中,提到了两个新的数据存储计算包,能够在一定程度上解决这个问题。
第一个是vroom,github链接如下:
r-lib/vroom
1.27 GB/s的读入速度,具有延迟加载的懒惰属性,每次只提取要用的变量,节省了缓存所需的瞬时最大空间。基本理念:尽管整个数据框可能很大,但是每次运算要用到的不大,因此只把需要的进行加载并得到结果即可。如果不是需要结果的时候,一切操作都仅仅是对操作本身的记录,不会对数据进行实质的提取,这样也有利于进行总体的整合优化。具体特性见官网,主要目前还是集中在文件的读写操作中。
第二个是disk.frame包,能够突破RAM内存限制,在单机中对占用内存过大的结构化表格进行处理。官网如下:
https://github.com/xiaodaigh/disk.frame对dplyr和data.table的用户都很友好,会在硬盘中创建文件夹来对目标数据进行处理,是解决比RAM大但是比ROM小的数据的良好方案,能够对海量数据进行调度与计算。如果数据不需要存储在多个机器中,这个方案可以免除spark等分布式框架必须设置环境的痛苦,直接在能够加很多硬盘内存的单机中实现大数据的处理。
相信未来有一天,一定会用到这两个工具,是以mark一下。
原文作者:;如有侵权,请联系管理员删除。