R语言适合大数据吗

数据挖掘 大数据 r
2021-10-01 20:23:51

R 有许多针对数据分析的库(例如 JAGS、BUGS、ARULES 等),并在流行的教科书中被提及,例如:J.Krusche、Doing Bayesian Data Analysis;B.Lantz,“使用 R 进行机器学习”。

我已经看到将数据集视为大数据的 5TB 指南。

我的问题是:R 是否适合大数据问题中常见的数据量?在这种大小的数据集上使用 R 时,是否可以采用策略?

4个回答

实际上这正在发生。在 R in a Nutshell 一书中,甚至有一节介绍使用 R 和 Hadoop 进行大数据处理。有一些变通方法需要完成,因为 R 在内存中完成所有工作,因此您基本上受限于可用的 RAM 数量。

R 和 Hadoop 的成熟项目是RHadoop

RHadoop 已分为几个子项目,rhdfs、rhbase、rmr2、plyrmr 和 quickcheck ( wiki )。

将 R 用于大型数据集的主要问题是 RAM 限制。将所有数据保存在 RAM 中的原因是它提供了比存储在 HDD 上更快的访问和数据操作。如果您愿意在性能方面受到影响,那么是的,在 R 中处理大型数据集是非常实用的。

  • RODBC 包:允许从 R 连接到外部数据库以检索和处理数据。因此,被操作的数据仅限于您的 RAM。整个数据集可以变得更大。
  • ff 包允许通过利用内存映射页面来使用大于 RAM 的数据集。
  • BigLM:它在大数据上构建广义线性模型。它以块的形式将数据加载到内存中。
  • bigmemory :一个 R 包,它允许对海量数据集进行强大且内存高效的并行分析和数据挖掘。它允许使用外部指针对象将大型对象(矩阵等)存储在内存中(在 RAM 上)来引用它们。

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

  1. 这个问题在提到大数据强调数据量当然是可以理解和有效的,特别是考虑到数据量增长超过摩尔定律的技术能力指数增长的问题http://en.wikipedia.org/wiki/Moore %27s_law )。

  2. 话虽如此,重要的是要记住大数据概念的其他方面。根据Gartner的定义(重点是我的 - AB):“大数据海量高速和/或种类繁多的信息资产,需要新的处理形式,以增强决策制定、洞察力发现和流程优化。” (通常称为“ 3Vs 模型”)。我提到这一点,因为它迫使数据科学家和其他分析师寻找和使用 R 包,这些包专注于大数据的体积方面(由庞大的R 生态系统的丰富性支持)。

  3. 虽然现有答案提到了一些与大数据相关的 R 包,以获得更全面的覆盖,但我建议参考CRAN 任务视图 “R 的高性能和并行计算”http://cran.r-project。 org/web/views/HighPerformanceComputing.html),特别是“并行计算:Hadoop”“大内存和内存不足数据”部分

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

然而,这只是一种方法:有一些包允许您与其他数据库(例如 Monet)交互或在 R 中运行具有较少内存限制的分析(例如,请参阅 参考资料pbdR)。