这个问题在这里已有答案:
我正在研究页面排名算法的实现, Map 程序应该写入
Key=outlink value=sourcepage,final pagerank value
输入的格式
source page outlinks inital pagerank value of the source page
例:
输入 Map 程序:
X AB 0.25
Map 计划的输出:
key = A value= X 0.125
key = B value= X 0.125
我使用 context.write(Text,Text)
方法输出键值对 .
该值是char和double值的组合,我将其转换为 String
并作为 Text
对象传递给 context.write
.
finalValue = Character.toString(sourcePage)+","+String.valueOf(finalpr);
context.write(new Text(Character.toString(page1)), new Text(finalValue));
是否有更好的方法为密钥传递多个值?请提供见解 .
1 回答
您可以将整个输出写为Text键值和NullWritable值 . 然后,一旦使用输出数据,您就可以使用Java拆分功能将其除以分隔符 . 所以做点什么
新文本(“key = A :: value = X :: 0.125”)
然后,一旦你在其他地方处理它,你就可以做String [] results = key.split(“::”);