13

我想使用 R 的分布式计算 tm 包(称为tm.plugin.dc)制作一个包含 1 亿条推文的文本语料库。推文存储在我笔记本电脑上的一个大型 MySQL 表中。我的笔记本电脑很旧,所以我使用的是在 Amazon EC2 上设置的 Hadoop 集群。

CRAN的tm.plugin.dc 文档说目前仅支持 DirSource。该文档似乎表明 DirSource 每个文件只允许一个文档。我需要语料库将每条推文视为文档。我有 1 亿条推文——这是否意味着我需要在旧笔记本电脑上创建 1 亿个文件?这似乎太过分了。有没有更好的办法?

到目前为止我已经尝试过:

  1. 将 MySQL 表的文件转储为单个(大量).sql 文件。将文件上传到 S3。将文件从 S3 传输到集群。使用 Cloudera 的 Sqoop 工具将文件导入 Hive。怎么办?我不知道如何使 DirSource 与 Hive 一起工作。

  2. 在我的笔记本电脑上使每条推文成为 XML 文件。但是怎么做?我的电脑很旧,不能很好地做到这一点。... 如果我能克服这个问题,那么我会: 将所有 1 亿个 XML 文件上传到亚马逊 S3 中的一个文件夹。将 S3 文件夹复制到 Hadoop 集群。将 DirSource 指向该文件夹。

4

3 回答 3

4

用 1 亿条推文制作巨大的 HDFS 文件,然后通过标准的R'tm包处理它们会不会更容易和更合理?

这种方法在我看来更自然,因为 HDFS 是为大文件和分布式环境开发的,而 R 是很好的分析工具,但没有并行性(或有限性)。您的方法看起来像是将工具用于不是为它们开发的东西......

于 2014-05-19T13:44:05.377 回答
2

TM 包基本上适用于术语和文档模型。它创建一个术语文档矩阵或文档术语矩阵。该矩阵包含术语(单词)及其在文档中的频率等特征。由于您想对推特数据执行分析,您应该将每条推文作为文档,然后您可以创建 TDM 或 DTM。并且可以执行各种分析,如查找关联、查找频率或聚类或计算 TDF-IDF 度量等。

您需要建立一个目录源语料库。因此,您需要拥有包含单个文档的基本目录,即您的推文。

根据您使用的操作系统,如果 Windows 将创建 .bat 文件或简单的 javascript 或 java 代码来读取推文文件的 MySQL 行并将其通过 FTP 传输到 Hadoop Box 本地文件系统上的目录,我会做什么.

一旦文件是 FTP,我们可以使用 Hadoop Copy From Local Command 将目录复制到 HDFS。

于 2014-06-17T07:41:27.560 回答
2

我强烈建议检查此网址http://www.quora.com/How-can-R-and-Hadoop-be-used-together。这将为您提供对问题的必要见解。

于 2013-06-25T23:50:09.120 回答