Je suis à court d'un problème de minute. J'essaie d'obtenir un fichier différent pour différentes clés de Reducer.différentes clés vont dans 1 fichier, même si vous utilisez Hadoop personnalisé Partitioner
Partitioner
public class customPartitioner extends Partitioner<Text, NullWritable> implements
Configurable {
private Configuration configuration;
@Override
public Configuration getConf() {
return configuration;
}
public int getPartition(Text key, NullWritable value, int numPartitions) {
return Math.abs(key.hashCode()) % numPartitions;
}
}
Et je mets ce qui suit dans ma classe de pilote
job0.setPartitionerClass(customPartitioner.class);
job0.setNumReduceTasks(5);
Pour réducteur J'ai 5 clés
[3, 0, 5, 8, 12 ]
J'ai donc besoin de 5 fichiers différents.
Mais une fois que j'ai exécuté ce code, je reçois 5 fichiers de pièces, mais les résultats ne sont pas attendus.
SORTIE
Found 6 items
-rw-r--r-- 3 sreeveni root 0 2015-12-09 11:44 /OUT/Part/OUT/_SUCCESS
-rw-r--r-- 3 sreeveni root 0 2015-12-09 11:44 /OUT/Part/OUT/part-r-00000
-rw-r--r-- 3 sreeveni root 4 2015-12-09 11:44 /OUT/Part/OUT/part-r-00001
-rw-r--r-- 3 sreeveni root 0 2015-12-09 11:44 /OUT/Part/OUT/part-r-00002
-rw-r--r-- 3 sreeveni root 4 2015-12-09 11:44 /OUT/Part/OUT/part-r-00003
-rw-r--r-- 3 sreeveni root 3 2015-12-09 11:44 /OUT/Part/OUT/part-r-00004
Dans ce 2 fichiers sont vides et l'autre contient
[email protected]:~$ hadoop fs -cat /OUT/Part/OUT/part-r-00001
3
8
[email protected]:~$ hadoop fs -cat /OUT/Part/OUT/part-r-00003
0
5
[email protected]:~$ hadoop fs -cat /OUT/Part/OUT/part-r-00004
12
Pourquoi 2 clés sont sous un fichier?
Est-ce que je fais une erreur dans mon code? S'il vous plaît aider