我有多个输入源,我使用 Sqoop 的 codegen 工具为每个输入源生成自定义类
public class SQOOP_REC1 extends SqoopRecord implements DBWritable, Writable
public class SQOOP_REC2 extends SqoopRecord implements DBWritable, Writable
在 Map 方面,根据输入源,我相应地创建了上述 2 个类的对象。
我将键作为“文本”类型,并且由于我有 2 种不同类型的值,因此我将值输出类型保持为“可写”。
在减少方面,我接受值类型为可写。
public class SkeletonReduce extends Reducer<Text,Writable, Text, Text> {
public void reduce(Text key, Iterable<Writable> values, Context context) throws IOException,InterruptedException {
}
}
我也设置
job.setMapOutputValueClass(Writable.class);
在执行过程中,它根本不进入reduce函数。
有人可以告诉我是否可以这样做?如果是这样,我做错了什么?