分区不在hadoop中工作

时间:2014-12-01 07:10:27

标签: hadoop mapreduce hadoop-partitioning

所以在我的代码中,我将数据分为三个部分,但在输出中我只获得了由第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

1 个答案:

答案 0 :(得分:0)

我做了一个非常愚蠢的错误....分区在我的代码中工作得很好......但我认为输出只是在部分-r-00000文件中我认为它只是为了减少它的负载除了文件..但在输出中它通过组合显示文件,但我错了,不同的分区有不同的输出。