我在hadoop上成功运行Apache mahout的并行FPGroth算法。 但是,如下所示,生成的输出文本文件无法读取
SEQorg.apache.hadoop.io.TextDorg.apache.mahout.fpm.pfpgrowth.convertors.string.TopKStringPatterns3G9y'e1 21t51t41 142273113476t11340 h15795N12701K13610 @ 12106 ...
使用相同的输入文件运行RecommenderJob和ItemSimilarityJob会生成正确的 输出文件。
有什么想法吗?
答案 0 :(得分:2)
这些输出文件是序列文件,而不是文本文件。它们包含<Text, TopKStrinPatterns>
你可以使用fs shell命令,结合-text和-libjars来获取hadoop来读取序列文件并输出这些对象的文本版本:
hadoop fs -libjars /path/to/mahout/lib.jar -text /path/to/hdfs/output/part*
如果您希望这些文件是文本而不是序列,那么您需要修改运行该作业的驱动程序,并将作业更改为使用TextOutputFormat
,而不是SequenceFileOutputFormat
:
// job.setOutputFormat(SequenceFileOutputFormat.class);
job.setOutputFormat(TextOutputFormat.class);