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

时间:2015-02-19 19:41:25

标签: java mapreduce

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

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));

是否有更好的方法为密钥传递多个值?请提供见解。

1 个答案:

答案 0 :(得分:0)

您可以将整个输出写为Text键值和NullWritable值。然后,一旦使用输出数据,您就可以使用Java拆分功能将其除以分隔符。所以做一些像

这样的事情

新文字(“key = A :: value = X :: 0.125”)

然后一旦你在其他地方处理它,你就可以做String [] results = key.split(“::”);