第9章 R语言的未来——大数据、快数据、智能数据
恭喜你到达最后一章。在本书的最后部分,我们将回顾前面提到的大数据技术,并将讨论使用R进行大数据分析的未来。我们尽可能为你提供相关主题的参考资源,你可以进一步拓展自己的大数据与R的技能。阅读本章后,你将能够:
- 总结市面上主流的大数据技术,并说明如何与R语言集成;
- 指出R及其在大数据分析统计工具领域的现状;
- 认识R语言未来发展的潜在机会,以及如何成为大数据工作流程不可或缺的一部分。
9.1 R大数据分析的现状
本部分主要是对R语言在大数据处理方面,以及与各种现有大数据平台和工具的集成能力的关键评价和总结。
9.1.1 超过单机内存的数据
本书从回顾R语言数据分析最常用的技术(即第2章)开始,指导你从导入数据,到数据的管理和处理方法、交叉表、聚合、假设测试、可视化。然后,我们解释了R语言对数据存储在内存资源及其处理速度的要求方面的主要限制。如果你只使用单个机器进行R语言的数据处理,则数据必须符合计算机的内存要求。然而,由于系统与R环境同时运行其他进程和应用程序,实际上数据的大小不能超过内存资源的50%。事实上,这个上限不仅取决于原始数据的大小,还取决于计划的数据处理策略,以及研究人员要进行的转换和数据分析技术的类型。
至少有两种常见的情况,即使在R中处理大约100MB的小数据集,也可能会导致整个操作系统在4GB内存的机器上显著变慢。首先,一些用户喜欢将中间处理步骤的所有结果存储在单独的对象中。这种方法允许他们返回到前一阶段或进行转换,而不重复所有中间步骤,以防上次转换未能返回所请求的输出。在概念上,这种方法可能没有错,但是在内存资源利用方面效率不高。想象一下,15~20个这样的变换,可以返回15~20个额外的差不多约100MB大小的对象,R都是把它们存在机器的内存中的。此外,由于每个转换都会消耗一些内存资源,所以使用这种方法的分析人员将很快体验到该方法引起的内存问题。更好的方法是用大数据集的小样本测试R代码,并在不使用R环境时立即从R环境中删除冗余对象。其次,如果分析涉及多次迭代、计算成本高的算法,例如具有许多隐藏层的神经网络,即使是大约100MB的小数据集也是有问题的。这些处理过程可能导致大量的内存开销,并且可能会消耗比源数据本身多很多的内存。 ...
Get R大数据分析实用指南 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.