我正在研究页面排名算法的实现,地图程序应该在其中编写
Key=outlink value=sourcepage,最终pagerank值
其中输入为格式
源页面输出源页面的初始pagerank值
示例:
地图程序输入:
X AB 0.25
地图程序输出:
键=A值=X 0.125key=B值=X 0.125
我使用了context.write(Text,Text)
方法来输出键值对。
该值是char和一个双值的组合,我将其转换为String
,并将其作为Text
对象传递给context.write
。
finalValue = Character.toString(sourcePage)+","+String.valueOf(finalpr);
context.write(new Text(Character.toString(page1)), new Text(finalValue));
有没有更好的方法为一个键传递多个值?请提供见解。
您可以将整个输出写成Text键值和NullWritable值。然后,一旦处理了输出数据,就可以使用Java split函数用分隔符将其分割。所以做一些类似的事情
新文本("key=A::value=X::0.125")
然后,一旦您在其他地方处理它,您就可以执行String[]results=key.split("::");