如何输出中间键/值对,其中多个值与映射程序中的单个键相关联



我正在研究页面排名算法的实现,地图程序应该在其中编写

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("::");

相关内容

  • 没有找到相关文章

最新更新