comment donner un nom personnalisé aux fichiers de sortie hadoop
Je veux que les fichiers de sortie dans le format que 2012117-part-r-00000. Fondamentalement, je veux que le fichier de sortie à la date qui lui est annexé, afin que je puisse organiser les fichiers selon la date. J'ai regardé OutputFormat et FileOutputFormat, mais il n'aide pas mon cas.
source d'informationauteur RFT
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas beaucoup de flexibilité dans le nom de fichier de sortie de la M. de l'emploi. Utiliser les sous-classes de la MultipleOutputFormat.
La MultipleOutputFormat#generateFileNameForKeyValue méthode doit être mise en œuvre, ignorer les apports de cette méthode et de retourner une chaîne de caractères dans la
date + -part-r- + mapred.task.partition
modèle. mapred.de la tâche.partition est un int, donc il doit être pré-collier avec des 0 de façon appropriée.Je viens de découvrir pour la nouvelle API, je peux utiliser org.apache.hadoop.mapreduce.lib.de sortie.MultipleOutputs et la méthode addNamedOutput()
Il y a 2 façons pour changer de nom de fichier de Sortie.
1. En utilisant une classe Java MultipleOutputFormat.
2. En Utilisant
Lien de référence: http://data-flair.training/forums/topic/in-mapreduce-how-to-change-the-name-of-output-file-from-part-r-00000
Il peut être réalisé par l'utilisation de Plusieurs Format de Sortie dans le Mappeur/Réducteur de classe. Par exemple:
Créer un objet de MultipleOutputs dans le Mappeur/Réducteur de classe.
Dans le programme d'installation, vous pouvez le faire:
et puis, dans le map/reduce méthode, vous pouvez faire:
Cela vous donnera les noms de fichiers comme xyz-m-00000 etc.