我尝试用mahout部署20-新闻组示例,似乎工作正常。出于好奇,我想深入了解模型统计数据,
例如:bayes-model目录包含以下子目录,
training-tfIdf trainer-thetaNormalizer培训师权重
包含part-0000文件。我想阅读文件的内容以便更好地理解,cat命令似乎不起作用,它打印出一些垃圾。
感谢任何帮助。
谢谢
答案 0 :(得分:5)
'part-00000'文件由Hadoop创建,采用Hadoop的SequenceFile
格式,包含特定于Mahout的值。你无法打开它们作为文本文件,不。您可以在Mahout中找到实用程序类SequenceFileDumper
,它将尝试将内容作为文本输出到stdout。
关于这些值的开头,它们是Mahout执行的基于多阶段Hadoop的计算的中间结果。您可以阅读代码以更好地了解这些代码。例如,“tfidf”目录包含与术语频率相关的中间计算。
答案 1 :(得分:3)
您可以使用hadoop的filesystem -text选项读取part-0000文件。只需进入hadoop目录并键入以下内容
`bin/hadoop dfs -text /Path-to-part-file/part-m-00000`
part-m-00000将打印到STDOUT。
如果它给您一个错误,您可能需要将HADOOP_CLASSPATH变量添加到您的路径中。例如,如果在运行后它会给你
text: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
这对我有用;)
答案 2 :(得分:0)
要读取part-00000(序列文件),您需要使用“seqdumper”实用程序。这是我用于实验的一个例子:
MAHOUT_HOME $:bin / mahout seqdumper -s 〜/聚类/实验-V1 / T14 / TFIDF向量/部分-R-00000 -o~ / vectors-v2-1010
-s是要转换为纯文本的序列文件
-o是输出文件