R有许多针对数据分析的库(例如JAG,错误,Arules等),并且在流行的教科书中提到:J.Krusche,进行贝叶斯数据分析; B.Lantz,“与R的机器学习”。

我已经看到了一个5TB指南,将数据集视为大数据。

我的问题是:R是否适合大数据问题中通常看到的数据量?使用R与此大小的数据集使用R时是否有策略?

有帮助吗?

解决方案

实际上,这正在出现。简而言之,在书中,甚至有一个关于将R与Hadoop一起进行大数据处理的部分。需要完成一些工作,因为R在内存中完成了所有工作,因此您基本上仅限于可用的RAM数量。

R和Hadoop的一个成熟项目是 rhadoop

Rhadoop已分为几个子项目,RHDFS,RHBase,RMR2,PlyRMR和QuickCheck(维基).

其他提示

将R用于大数据集的主要问题是RAM约束。将所有数据保存在RAM中的原因是,它提供了比HDD上存储的更快的访问和数据操作。如果您愿意受到打击,是的,与之合作是非常实用的 R中的大数据集.

  • RODBC软件包:允许从R连接到外部DB,以检索和处理数据。因此,数据为 操纵 仅限于您的RAM。总体数据集可能会大得多。
  • FF软件包允许使用内存映射页面来使用大于RAM数据集。
  • BIGLM:它在大数据上构建了广义的线性模型。它将数据加载到块中的内存中。
  • BigMemory:一个R软件包,允许对大规模数据集的强大且有效的并行分析和数据挖掘。它允许使用外部指针对象将大型对象(矩阵等)存储在内存(RAM上)中。

这里有一些好的答案。我想通过添加以下三个来加入讨论 笔记:

  1. 问题的重点 数据量 指的是 大数据 当然是可以理解和有效的,尤其是考虑到 问题 数据量增长 超越 技术能力的指数增长 摩尔定律 (http://en.wikipedia.org/wiki/moore%27s_law).

  2. 话虽如此,重要的是要记住大数据概念的其他方面。基于 加特纳的定义(强调我的AB):”大数据体积, , 高的 速度, ,和/或高 种类 需要新形式处理以实现增强决策,洞察发现和过程优化的信息资产(通常称为“”3VS模型”)。我提到了这一点,因为它迫使数据科学家和其他分析师寻找并使用关注的R包 除了音量 大数据的各个方面(由 丰富 巨大 R生态系统).

  3. 虽然现有答案提到了一些与大数据相关的R软件包,但更多 全面的覆盖范围, ,我建议参考 克兰任务视图 “用R的高性能和并行计算” (http://cran.r-project.org/web/views/highperformancecomputing.html),特别是部分 “平行计算:hadoop”“大记忆和内存数据”.

R非常适合“大数据”!但是,您需要一个工作流程,因为R在操作系统中的RAM量有限(简化)。我采用的方法是与关系数据库进行互动(请参阅 RSQLite 用于创建和与SQLITE数据库进行交互的软件包,运行SQL式查询以了解数据的结构,然后提取数据的特定子集以进行计算密集型统计分析。

但是,这种方法是:有些软件包允许您与其他数据库(例如Monet)进行交互或在R中进行的分析,而内存限制较少(例如,请参阅,请参见 pbdR).

考虑到另一个标准,我认为在某些情况下,使用Python的大数据可能优于R。我知道R在数据科学教育材料和良好的数据分析库中的广泛使用,但有时仅取决于团队。

根据我的经验,对于已经熟悉编程的人来说,与R语言相比,使用Python提供了更大的灵活性和生产率提升,而R语言在编程语言方面与Python相比并不那么设计和强大。作为证据,在我大学的数据挖掘课程中,最好的最终项目是用Python编写的,尽管其他项目可以访问R的丰富数据分析库。也就是说,有时甚至在缺乏Python的特殊用途数据分析库中,Python的总体生产率(考虑学习材料,文档等)也可能比R更好。此外,还有一些很好的文章解释了数据科学中Python的快速步伐: python流离失所rPython中丰富的科学数据结构 这很快可能填补了R的可用库的空白。

不使用R的另一个重要原因是,在处理现实世界中的大数据问题时,与仅学术问题相反,其他工具和技术非常需要数据解析,清洁,可视化,网络取消以及许多其他工具和技术使用通用编程语言要容易得多。这可能就是为什么许多Hadoop课程中使用的默认语言(包括Udacity的 在线课程)是python。

编辑:

最近,DARPA还投资了300万美元,以帮助Python的数据处理和可视化功能为大数据工作提供,这显然是Python在大数据中未来的迹象。 ((细节)

R非常适合大量分析。如前所述,对于MAPR,Rhadoop和Rstudio的可扩展版本等大数据,还有更新的改编版。

但是,如果您的关注是库,请注意火花。 Spark是为大数据创建的,比单独的Hadoop快得多。它具有大大增长的机器学习,SQL,流和图库。因此,在框架中允许在框架内完成很多分析(我更喜欢Scala),而不必在语言/工具之间进行混音。

正如其他答案所指出的那样,R可以与Hadoop和其他分布式计算平台一起使用,以扩展到“大数据”级别。但是,如果您不专门为R,但愿意使用“ Rike”环境, 印加人 是一个可能对您有效的项目,因为它是JVM的原生(基于Clojure),并且在R之间没有R之间的“阻抗不匹配”。也就是说,从印第安人那里,您可以调用Java本地Hadoop / HDFS API,而无需穿过JNI桥或任何东西。

我远非专家,但是我对这个主题的理解告诉我,R(统计数据中的出色)和例如Python(在缺少R缺乏R的几件事中非常出色)相互补充(如以前的帖子所指出的那样) 。

我认为实际上有很多用于在R. Sparplyr中使用大数据的工具,将是该领域的出色玩家。 Sparklyr是Apache Spark的R接口,允许与本地和远程簇的连接,提供DPLYR后端。也可以依靠Apache Spark的机器学习库。此外,可以使用多个软件包(例如RMPI和SNOW(用户控制)或DOMC/FOREACH(基于系统))并行处理。

许可以下: CC-BY-SA归因
scroll top