Comment mettre en œuvre le tri dans hadoop?
Mon problème est de trier les valeurs dans un fichier.
les clés et les valeurs sont des nombres entiers et de la nécessité de maintenir les clés de tri des valeurs.
key value
1 24
3 4
4 12
5 23
de sortie:
1 24
5 23
4 12
3 4
Je suis en train de travailler avec massives de données et exécuter le code dans un cluster hadoop machines.
Comment puis-je le faire avec mapreduce?
- Alors, que voulez-vous trier par? la clé ou la valeur? Pouvez-vous donner un exemple montrant le fichier et comment elles doivent être triées?
- j'ai édité.
- Donc, vos clés sont uniques?
- double possible de Comment faire pour trier les données dans la carte de réduire hadoop?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez probablement le faire (je suis en supposant que vous utilisez Java ici)
À partir de cartes émettent, ce
Alors, vous les valeurs qui doit être triée devrait être la clé dans votre travail de mapreduce.
Hadoop par défaut tri par ordre croissant des clés.
Donc, soit vous faites cela pour trier dans l'ordre décroissant,
Ou, ce,
Vous avez besoin de personnaliser le Tri dans l'ordre Décroissant de Comparaison, ce qui va quelque chose comme ceci dans votre travail.
Le suffle et de tri phase dans Hadoop va prendre soin de trier vos clés dans l'ordre décroissant 24,4,12,23
Après le commentaire:
Si vous avez besoin d'un Descendant IntWritable Comparable, vous pouvez en créer un et de l'utiliser comme ceci -
Dans le cas où si vous utilisez JobConf, utilisez cette fonction pour définir
Placer le code ci-dessous votre
main()
fonction -