所以在我的代码中,我将数据分为三个部分,但在输出中我只获得了由第0个分区重新调整的输出,即使我没有将reducers设置为3
我的代码
public static class customPartitioner extends Partitioner<Text,Text>{
public int getPartition(Text key, Text value, int numReduceTasks){
String country = value.toString();
if(numReduceTasks==0)
return 0;
if(key.equals(new Text("key1")) && !value.equals(new Text("valuemy")))
return 1%numReduceTasks;
if(value.equals(new Text("valueother")) && key.equals(new Text("key1")) )
return 0;
else
return 2%numReduceTasks;
}
}
并将减少器设置为
job.setNumReduceTasks(3);
它只给出了第0个分区的输出,即返回0
答案 0 :(得分:0)
我做了一个非常愚蠢的错误....分区在我的代码中工作得很好......但我认为输出只是在部分-r-00000文件中我认为它只是为了减少它的负载除了文件..但在输出中它通过组合显示文件,但我错了,不同的分区有不同的输出。