Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从映射器发出列表_Java_Hadoop_Mapreduce - Fatal编程技术网

Java 从映射器发出列表

Java 从映射器发出列表,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我正试图从Mapper发出一个列表 List<String> mapFinalList = new ArrayList<String>(); 但将输出显示为 pck.Driver$ListWritable@75e287e5 我是否做错了什么您可以使用已经实现的方法来实现此目的。或者看看实现可写接口。您可以使用已经实现的接口。或者看看如何实现可写接口。将整个列表保存在内存中,并一次性发出,这可能是危险的,而且不可扩展。除非您强烈要求一次发出整个字符串列表,否则我宁愿在映

我正试图从Mapper发出一个列表

List<String> mapFinalList = new ArrayList<String>();
但将输出显示为

pck.Driver$ListWritable@75e287e5

我是否做错了什么

您可以使用已经实现的方法来实现此目的。或者看看实现可写接口。

您可以使用已经实现的接口。或者看看如何实现可写接口。

将整个列表保存在内存中,并一次性发出,这可能是危险的,而且不可扩展。除非您强烈要求一次发出整个
字符串列表,否则我宁愿在映射器中实现一个循环,并单独发出每个
字符串。

将整个列表保存在内存中,一次发出可能是危险的和不可伸缩的。除非您强烈要求一次性发出整个
string
列表,否则我宁愿在映射器中实现一个循环,并分别发出每个
string

您可以使用
list.toArray(T[])
方法轻松地将列表转换为数组,其中,参数将初始化为大小为
mapFinalList.size()
的数组。然后,可以使用此数组作为参数String[]dummyarray=dummy.toArray(新字符串[dummy.size()])创建一个ArrayWritable;write(新文本(“”),新的ArrayWritable(dummyarray));但是显示java.lang.RuntimeException:java.lang.NoSuchMethodException:org.apache.hadoop.io.ArrayWritable。()请看一下答案。如果此可写将作为减速机的输入,则需要创建一个子类,将值设置为正确的类型。例如:公共类StringArrayWritable扩展了ArrayWritable{public StringArrayWritable(){super(Text.class);}}}给定您的初始代码行,您只需要以下内容:
newArrayWritable(mapFinalList.toArray(new String[mapFinalList.size()])list.toArray(T[])
方法轻松地将列表转换为数组,其中参数将初始化为大小为
mapFinalList.size()
的数组。然后,可以使用此数组作为参数String[]dummyarray=dummy.toArray(新字符串[dummy.size()])创建一个ArrayWritable;write(新文本(“”),新的ArrayWritable(dummyarray));但是显示java.lang.RuntimeException:java.lang.NoSuchMethodException:org.apache.hadoop.io.ArrayWritable。()请看一下答案。如果此可写将作为减速机的输入,则需要创建一个子类,将值设置为正确的类型。例如:公共类StringArrayWritable扩展了ArrayWritable{public StringArrayWritable(){super(Text.class);}}}给定您的初始代码行,您只需要以下内容:
newArrayWritable(mapFinalList.toArray(new String[mapFinalList.size()])pck.Driver$ListWritable@75e287e5