当前位置:  开发笔记 > 编程语言 > 正文

R中的大数据处理与分析

如何解决《R中的大数据处理与分析》经验,为你挑选了2个好方法。

我知道这不是R中的任何新概念,我浏览了高性能和并行计算任务视图.话虽如此,我从无知的角度提出这个问题,因为我没有正式的计算机科学培训,完全是自学成才.

最近我从Twitter Streaming API收集了数据,目前原始JSON位于10 GB的文本文件中.我知道在调整R来处理大数据方面取得了很大进展,那么你将如何解决这个问题呢?以下是我要做的一些任务:

    读取数据并将其处理为数据帧

    基本描述性分析,包括文本挖掘(常用术语等)

    绘制

是否有可能完全使用R,或者我必须编写一些Python来解析数据并将其放入数据库中,以便随机抽取小到适合R的样本.

简而言之,我们将非常感谢您提供的任何提示或指示.同样,如果您描述三年级的解决方案,我也不会冒犯.

提前致谢.



1> qethanm..:

如果你需要同时对整个10GB文件进行操作,那么我第二点就是Chase关于获得更大的,可能是基于云的计算机的观点.

(Twitter流媒体API返回一个非常丰富的对象:一个140个字符的推文可能会产生几千亿的数据.如果您在R之外预处理数据以仅提取您需要的内容,例如作者姓名,则可能会减少内存开销和推文.)

另一方面,如果您的分析适合分割数据 - 例如,您希望首先按作者,日期/时间等对推文进行分组 - 您可以考虑使用Hadoop来驱动R.

当然,Hadoop会产生一些开销(集群设置和学习底层MapReduce模型); 但是如果你计划做大量的大数据工作,你可能还是希望在工具箱中使用Hadoop.

几个指针:

Parallel R第7章中的一个例子展示了如何设置R和Hadoop以进行大规模的推文分析.该示例使用RHIPE包,但这些概念适用于任何Hadoop/MapReduce工作.

您还可以通过AWS/EC2获得Hadoop集群.查看按需群集的Elastic MapReduce, 如果需要对Hadoop部署进行更多控制,请使用 Whirr.


好答案.只是一个建议:如果你是一个你引用的作品的作者,那么披露是很好的.:)

2> Ari B. Fried..:

有一个全新的软件包colbycol,可以让你只从大量的文本文件中读取你想要的变量:

http://colbycol.r-forge.r-project.org/

read.table函数仍然是R中的主要数据导入函数.该函数内存效率低,根据一些估计,它需要三倍于数据集大小的内存才能将其读入R.

这种低效率的原因是R将data.frames存储在内存中作为列(data.frame不超过等长矢量列表),而文本文件由记录行组成.因此,R的read.table需要读取整行,将它们单独处理成标记并将这些标记转换为面向列的数据结构.

ColByCol方法具有内存效率.使用Java代码,tt读取输入文本文件并将其输出到多个文本文件中,每个文件文件都包含原始数据集的单个列.然后,这些文件被单独读入R,从而避免了R的内存瓶颈.

这种方法最适用于分成许多列的大文件,特别是当这些列可以转换为内存有效类型和数据结构时:数字的R表示(在某些情况下),以及通过因子重复级别的字符向量占用的空间比他们的角色代表.

软件包ColByCol已成功用于在2GB笔记本电脑上读取多GB数据集.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有