【发布时间】:2014-09-08 11:45:16
【问题描述】:
我收到以下 MRUnit 错误:
ERROR mrunit.TestDriver:收到意外输出(60,mrdp.MyCustomClass@73207f36)
ERROR mrunit.TestDriver:位置 0 处缺少预期输出(60,mrdp.MyCustomClass@6f73cf45)
我创建了一个实现Writable 的MyCustomClass,并具有4 个int 属性。这是我的 Mapper 的输出值。
以下是mapper的MRUnit测试代码:
@Test
public void testMapper() throws IOException {
MyCustomClass result = new MyCustomClass();
result.setAttr1(1);
result.setAttr2(0);
result.setAttr3(0);
result.setAttr4(0);
mapDriver.withInput(new LongWritable(1), new Text("60,5596,1,256"));
mapDriver.addOutput(new Text("60"), result);
mapDriver.runTest();
}
当在上面的 new Text("60,5596,1,256") 中找到“1”时,我的 Mapper 应该调用它的设置器 setAttr1(1)。
如何使用自定义类(具有多个属性)测试此结果?作业执行成功,只是不知道如何让MRUnit测试工作。
$ hadoop fs -cat patterns/minmaxcount/outuserprefs/part*
23 mrdp.MyCustomClass@4cf15f6c
60 mrdp.MyCustomClass@4cf15f6c
【问题讨论】:
标签: java hadoop mapreduce mrunit