首页 文章

如何输出中间键/值对,其中多个值与 Map 程序中的单个键相关联? [重复]

提问于
浏览
0

这个问题在这里已有答案:

我正在研究页面排名算法的实现, 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 回答

  • 0

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

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

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

相关问题