我有两份表格文件
文件1:
键1值1
键2值2
...
文件2:
键1值3
键2值4
...
我想制作一个减量输出的表格
键1(value1-value3)/value1
键2(value2-value4)/value2
我让map写入键,值前面有一个字符,告诉它来自file1或file2,但不确定如何写入reduce阶段
我的Map方法是
public void map(LongWritable key,Text val,Context context) throws IOException, InterruptedException
{
Text outputKey = new Text();
Text outputValue = new Text();
outputKey.set(key.toString());
if ("A")
{
outputValue.set("A,"+val);
}
else
{
outputValue.set("B," + val);
}
context.write(outputKey, outputValue);
}
}
2条答案
按热度按时间5kgi1eie1#
我发现在这种情况下使用namedvector非常有用。这提供了值的标识,以便您可以基于“名称”对值执行所需的操作。
iih3973s2#
它应该足够简单,因为您已经标记了它,尽管一开始有点混乱。我假设发射的值
A23
(对于文件1)和B139
(对于文件2)。代码段:希望这会有帮助。但我认为你的方法在
key1
以及key2
我们是平等的。更新
这个
map
使用上述减速机时应如下所示: