Dans le fichier d'entrée que j'ai besoin de traiter, les données sont classées par en-têtes et leurs enregistrements respectifs. Mon fichier de 200 Mo comporte 3 en-têtes de ce type et ses enregistrements sont répartis sur 4 blocs (3 * 64 Mo et 1 * 8 Mo).Comment créer une paire clé/valeur dans le programme mapreduce si les valeurs sont stockées à travers les limites?
Les données seraient en dessous le format
HEADER 1
Record 1
Record 2
.
.
Record n
HEADER 2
Record 1
Record 2
.
.
Record n
HEADER 3
Record 1
Record 2
.
.
Record n
Tout ce que je besoin est de prendre la HEADER comme une clé et de son ci-dessous enregistrements comme valeurs et traiter certaines opérations dans mon code cartographe.
Le problème ici est mes enregistrements sont répartis entre différents blocs. Supposons que mon premier en-tête et ses enregistrements respectifs occupent un espace de 70 Mo, cela signifie qu'il occupe 64 Mo du premier bloc et 6 Mo d'espace en second bloc.
Maintenant, comment le cartographe qui fonctionne sur le bloc 2 sait que 6 Mo de fichier appartient aux dossiers du HEADER 1.
Quelqu'un peut-il s'il vous plaît me expliquer que la façon d'obtenir complètement l'en-tête et ses dossiers.
J'ai essayé de répondre à quelque chose de similaire ici: http://stackoverflow.com/questions/32758322/how-do-we-count-the-number-of-times-a-map-function-is-called- in-a-mapreduce-prog – YoungHobbit
@YoungHobbit Je pense que le problème ici est le nombre inconnu d'enregistrements après l'en-tête, ainsi que l'en-tête et l'enregistrement se combinant. – Ramzy