我正试图从mapper发出一个列表。
List<String> mapFinalList = new ArrayList<String>();
有什么方法可以发出一个列表或者我应该创建一个 Custom Writable
我的名单。
请建议。
更新
我用arraywritable试过了
public static class ListWritable extends ArrayWritable
{
public ListWritable() {
super(Text.class);
}
}
ListWritable passList = new ListWritable();
ArrayWritable[] data = new ArrayWritable[dummy.size()];
for (int k = 0; k < dummy.size(); k++) {
data[k] = new ArrayWritable(dummy.toArray(new String[dummy.size()]));
}
passList.set(data);
context.write(new Text(""), passList);
但输出显示为
pck.Driver$ListWritable@75e287e5
我做错什么了吗
2条答案
按热度按时间voase2hg1#
将整个列表保存在内存中并一次性发送可能是危险的,而且不可扩展。除非你有一个强烈的要求,发出一个完整的列表
string
在一个镜头中,我宁愿在Map器中实现一个循环,并发射每个循环String
个别地。irlmq6kh2#
为此,可以使用已实现的arraywritable。或者看看其他实现可写接口的类。