【发布时间】:2012-01-10 16:40:36
【问题描述】:
我知道这在 R 中并不是一个新概念,我浏览了高性能和并行计算任务视图。话虽如此,我是从无知的角度问这个问题的,因为我没有接受过计算机科学方面的正式培训并且完全是自学的。
最近我从 Twitter 流 API 收集数据,目前原始 JSON 位于一个 10 GB 的文本文件中。我知道在使用 R 来处理大数据方面已经取得了长足的进步,那么您将如何解决这个问题呢?以下是我希望完成的一些任务:
- 读取数据并处理成数据框
- 基本描述性分析,包括文本挖掘(常用术语等)
- 绘图
是否可以为此完全使用 R,或者我必须编写一些 Python 来解析数据并将其放入数据库中,以便获取足够小的随机样本以适合 R。
简单地说,您可以提供的任何提示或指示将不胜感激。同样,如果您在三年级时描述解决方案,我也不会生气。
提前致谢。
【问题讨论】:
-
如果考虑创造性和高效的代码变得过于繁琐,您可以尝试将更大的计算机投入到数据中。大约 2 美元/小时,您可以从 Amazon 租用具有 68 GB RAM 的 linux 实例。感谢 Bioconductor 的好人,您可以使用他们的预定义 AMI 和已安装的 R 的最新版本,甚至可以轻松设置 RStudio Web 界面。详情here
-
感谢您,我不知道 Bioconductor 的设置,但听说过类似的设置。我挣扎的一件事是如何使用我通过网络连接的外部计算机“更快”处理驻留在我计算机上的数据。此外,这是否允许我在我的机器上使用 R 加载和处理所有 10gb 数据?
-
当我使用 EC2 时,我已经通过 scp 或类似协议将我的数据“移至云端”。然后数据和代码驻留在同一个位置。所以我的工作流程如下所示:1. 启动 EC2,2. 将数据和代码移动到 EC2,3. 运行模拟,4. 检索上述所有内容并关闭 EC2 实例。我知道您还可以利用 Amazon 的 S3 服务来托管/存储您的数据并与 EC2 进行通信,尽管我还没有需要还走这条路。
-
感谢您对工作流程的大力响应!
-
更好的解决方案是下载json文件,将其转换为data.frame,插入到MySQL数据库中。这样,您就可以避免创建 10GB 的文件,然后您就可以查询数据库了。