我将IntWritable
与UserId
一起进行了非常简单的操作:
public class UserId extends IntWritable {
public UserId(int userId) {
super(userId);
}
public UserId() {
super();
}
}
它完美地适用于我的Map / Reduce工作。但是当我从上一个作业的输出中读取第二个map / reduce作业时,我遇到了一个问题。然后我得到这样的错误:
java.lang.Exception: java.io.IOException: can't find class:
com.foo.UserId because com.foo.UserId at
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:371)
Caused by: java.io.IOException: can't find class:
com.foo.UserId because com.foo.UserId
at org.apache.hadoop.io.AbstractMapWritable.readFields(AbstractMapWritable.java:206)
etc...
UserId
用于SortedMapWritable
(输出值),文件的输出/输入类型为SequenceFile*Format
。
如果我将类型更改回IntWritable,它将正常工作。问题是什么? UserId
班还有更多工作要做吗?
谢谢!