【发布时间】:2012-05-04 21:57:02
【问题描述】:
我有多个输入源,我使用 Sqoop 的 codegen 工具为每个输入源生成自定义类
public class SQOOP_REC1 extends SqoopRecord implements DBWritable, Writable
public class SQOOP_REC2 extends SqoopRecord implements DBWritable, Writable
在 Map 端,根据输入源,我相应地创建了上述 2 个类的对象。
我的键类型为“文本”,因为我有两种不同类型的值,所以我将值输出类型保持为“可写”。
在 reduce 方面,我接受值类型为 Writable。
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函数。
有人可以告诉我是否可以这样做吗?如果是这样,我做错了什么?
【问题讨论】: