今天操作了一下MapReduce,并自定义了类进行输入输出。
其中出现了一些问题:就是该如何序列化。
然后将输出中的key-value分别使用自定义的类。
当value为自定义的类时
发现当value为自定义的类时,此类一定要继承writable。并重写其中的write()和readFields()方法。方能成功。
当你只继承Comparable时,会出现异常![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e896483dd036cebbcb673430e9bffc84.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/32db23cb204fa02c1bd0de6a6988f9c4.png)
当key为自定义的类时
需要继承WritableComparable,少一个都会出现问题。
因为在MapReduce中key是要排序的,必须提供Comparable接口,且要写入文件,writable也必不可缺。