Mahout0.6-VectorDumper bug修复

VectorDumper类的功能是从SequenceFile中按照键值对的方式读取信息并将其转化为文本形式,具体使用见第五部分1.1.2节第3)条。如果不对源码进行修改使用时存在两个bug,现在只对bug1做修复,bug1修复后就可以满足使用需求了,bug2会在后续工作中修复。

bug1:

用$MAHOUT0P6_HOME/bin/mahout vectordump –h查看vectordump参数,发现有两个-n参数,为了避免混淆,将代码修改如下:

第一步修改:

改前:

OptionnamesAsCommentsOpt =obuilder.withLongName("namesAsComments").withRequired(false).withDescription(

            "If using CSV output,optionally add a comment line for each NamedVector (if the vector is one)printing out the name")

            .withShortName("n").create();

改后:

Option namesAsCommentsOpt = obuilder.withLongName("namesAsComments").withRequired(false).withDescription(

            "If using CSV output, optionally add a comment linefor each NamedVector (if the vector is one) printing out the name")

            .withShortName("ac").create();

第二步修改:

当结果第一步修改,可以使用-c和-ac组合参数读取结果,但是会报错,显示没有参数ac,原因是0.6版中丢失了一段代码,修改前源码和修还后的源码为

修改前:

Group group = gbuilder.withName("Options").withOption(seqOpt).withOption(outputOpt)

                          .withOption(dictTypeOpt).withOption(dictOpt).withOption(csvOpt).withOption(vectorAsKeyOpt).withOption(printKeyOpt).withOption(sortVectorsOpt).withOption(filtersOpt).withOption(helpOpt).withOption(numItemsOpt)

                         .withOption(sizeOpt).withOption(numIndexesPerVectorOpt).create();

修改后:

Group group = gbuilder.withName("Options").withOption(seqOpt).withOption(outputOpt)

                         .withOption(dictTypeOpt).withOption(dictOpt).withOption(csvOpt).withOption(namesAsCommentsOpt)

                         .withOption(vectorAsKeyOpt).withOption(printKeyOpt).withOption(sortVectorsOpt)

                         .withOption(filtersOpt).withOption(helpOpt).withOption(numItemsOpt)

                         .withOption(sizeOpt).withOption(numIndexesPerVectorOpt).create();

bug2

但不适用-c参数时会报错,待修复

原文地址:https://www.cnblogs.com/james1207/p/3257957.html