机器学习和生物信息学实验室联盟
标题:
Hadoop中使用ArrayWritable作为value的扩展异常处理
[打印本页]
作者:
hsc
时间:
2013-11-3 17:40
标题:
Hadoop中使用ArrayWritable作为value的扩展异常处理
作为曾经比较早接触Hadoop的一员,现在看到自己都落后大家一个环岛路那么远了,说起来甚是惭愧,因为毕业设计跟这个相关,所以就再次捡起来了,一些写程序中遇到的问题,说来大家分享一下,如果大家都已经碰到这个问题了,并且觉得好弱的问题,就不要喷我了,理解一下作为学术上的小学弟吧!
一般都知道Hadoop里的是<Key, Value>对,如果我想扩展成一个<Key, Value[]>时该怎么办呢,很巧的是Hadoop提供了一个ArrayWritable类可以实现,但是问题来了,很多时候,我们使用了这个类,但是发现map的输出并没有收集到数据,而且会报
java.lang.RuntimeException: java.lang.NoSuchMethodException: org.apache.hadoop.io.ArrayWritable.<init>()
的异常信息,经过网上一些大牛的提点,发现Hadoop在实现ArrayWritable的时候,并不会提供一个默认的构造函数,因此,我们需要重写这个类,使用super构造一下就可以了。
public class NewArrayWritable extends ArrayWritable {
public NewArrayWritable() {
super(IntWritable.class);
}
}
复制代码
因为ArrayWritable构造函数里是需要一个Writable的某个子类来初始化的,所以可以根据自己需要随便改。
以上纯属小问题,不喜勿喷!!!
欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/)
Powered by Discuz! X3.2