hdfs的新功能:如果我错了,请纠正我,但据我所知: Mapper<Object, Text, Text, Text> 最后两个 Text 是Map器的返回类型。说我想回来 Text, <Text, IntWriteable> . 我怎样才能做到这一点?另外,我应该在文档中的什么地方查找?例如,在Map程序接收到对象和文本之后,它对输入文件中的数据行执行一些逻辑,我希望它返回如下内容 context.write(Text,[Text, IntWriteable])
Mapper<Object, Text, Text, Text>
Text
Text, <Text, IntWriteable>
context.write(Text,[Text, IntWriteable])
ru9i0ody1#
您可能需要定义自己的数据类型。如果需要比较操作,实现可写可比接口,否则只实现可写接口就可以了。这是一个使用 WritableComparable 接口:
WritableComparable
public class MyDataType implements WritableComparable<MyDataType> { private Text name; private IntWritable age; @Override public void readFields(DataInput in) throws IOException { name.readFields(in); age.readFields(in); } @Override public void write(DataOutput out) throws IOException { name.write(out); age.write(out); } @Override public int compareTo(MyDataType o) { int nameCompare = name.compareTo(o.name); if(nameCompare != 0) { return nameCompare; } else { return age.compareTo(o.age); } } }
6jygbczu2#
你必须在hadoop中实现自定义的可写性。我指的是一些网站,可能会有所帮助https://halalhassan.wordpress.com/2013/12/15/custom-writables-in-hadoop-the-right-way/http://www.hadoopmaterial.com/2013/10/custom-hadoop-writable-data-type.html
2条答案
按热度按时间ru9i0ody1#
您可能需要定义自己的数据类型。如果需要比较操作,实现可写可比接口,否则只实现可写接口就可以了。
这是一个使用
WritableComparable
接口:6jygbczu2#
你必须在hadoop中实现自定义的可写性。我指的是一些网站,可能会有所帮助
https://halalhassan.wordpress.com/2013/12/15/custom-writables-in-hadoop-the-right-way/http://www.hadoopmaterial.com/2013/10/custom-hadoop-writable-data-type.html