我正在尝试使用这样的自定义对象实现map和reduce:
映射器:
public class SommeMapper extends Mapper<LongWritable, Text, Entity, Entity>
减速机:
public class SomeReducer extends Reducer<Entity,Entity, NullWritable, Text>
虽然我有三个可以进入reducer的对象:
Entity implements WitableComparable
A extends Entity
B extends Entity
我用A或B打电话给Context.write
我收到以下错误:
java.io.IOException: Type mismatch in key from map: expected Entity, recieved A
如果我可以在Keys中使用inmhertance进行缩减,有人会指出吗?
答案 0 :(得分:0)
您必须在创建作业期间为映射器定义输出键/值类:
conf.setOutputKeyClass(Entity.class);
conf.setOutputValueClass(Entity.class);
答案 1 :(得分:0)
您是否考虑为A和B创建包装类? C级{A val1; B val2; }或C类{实体val;}