2

我尝试使用 mahout 部署 20 个新闻组示例,它似乎工作正常。出于好奇,我想深入研究模型统计信息,

例如:bayes-model 目录包含以下子目录,

培训师-tfIdf 培训师-thetaNormalizer 培训师-权重

其中包含部分 0000 文件。我想阅读文件的内容以便更好地理解,cat 命令似乎不起作用,它打印了一些垃圾。

任何帮助表示赞赏。

谢谢

4

3 回答 3

5

“part-00000”文件由 Hadoop 创建,采用 HadoopSequenceFile格式,包含特定于 Mahout 的值。您不能将它们作为文本文件打开,不。您可以SequenceFileDumper在 Mahout 中找到实用程序类,它会尝试将内容作为文本输出到标准输出。

至于这些值是从什么开始的,它们是 Mahout 执行的基于 Hadoop 的多阶段计算的中间结果。您可以阅读代码以更好地了解它们是什么。例如,“tfidf”目录包含与词频相关的中间计算。

于 2011-11-14T18:26:16.937 回答
3

您可以使用 hadoop 的 filesystem -text 选项读取 part-0000 文件。只需进入 hadoop 目录并输入以下内容

`bin/hadoop dfs -text /Path-to-part-file/part-m-00000`

part-m-00000 将被打印到 STDOUT。

如果它给您一个错误,您可能需要将 HADOOP_CLASSPATH 变量添加到您的路径中。例如,如果运行后它给你

文本:java.io.IOException:WritableName 无法加载类:org.apache.mahout.math.VectorWritable

然后将对应的类添加到 HADOOP_CLASSPATH 变量中

export HADOOP_CLASSPATH=/src/mahout/trunk/math/target/mahout-math-0.6-SNAPSHOT.jar

这对我有用;)

于 2012-02-07T21:03:00.680 回答
0

为了读取 part-00000(序列文件),您需要使用“seqdumper”实用程序。这是我用于实验的示例:

MAHOUT_HOME$:bin/mahout seqdumper -s ~/clustering/experiments-v1/t14/tfidf-vectors/part-r-00000 -o ~/vectors-v2-1010

-s 是要转换为纯文本的序列文件

-o 是输出文件

于 2012-03-23T21:40:56.230 回答