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参数时会报错,待修复