我正在研究页面排名算法的实现,其中地图程序应该写
Key=outlink value=sourcepage,final pagerank value
其中输入的格式为
source page outlinks inital pagerank value of the source page
示例:
输入地图程序:
X AB 0.25
地图程序的输出:
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));
是否有更好的方法为密钥传递多个值?请提供见解。
答案 0 :(得分:0)
您可以将整个输出写为Text键值和NullWritable值。然后,一旦使用输出数据,您就可以使用Java拆分功能将其除以分隔符。所以做一些像
这样的事情新文字(“key = A :: value = X :: 0.125”)
然后一旦你在其他地方处理它,你就可以做String [] results = key.split(“::”);