Невозможно добавить разделители и имя файла со словами в Wordcount Hadoop - PullRequest
0 голосов
/ 09 марта 2020

Это функция Mapreduce. Я делаю конкатенацию разделителей "######" и имени моего файла с WOrd в классе WORDCOunt. Когда я запускаю код, я не получаю никаких изменений. Я просто получаю слова и их количество. Я хочу конечный результат в этом формате (Word ###### Filename). Пожалуйста, скажите мне, где я делаю неправильно.

   public static class Map extends Mapper<LongWritable ,  Text ,  Text ,  Text > 
   {
          private final static IntWritable one  = new IntWritable( 1);
          private Text word  = new Text();
          private static final Pattern WORD_BOUNDARY = Pattern .compile("\\s*\\b\\s*");

          public void map( LongWritable offset,  Text lineText,  Context context) throws  IOException,  InterruptedException 
          {
             String line  = lineText.toString();
             Text currentWord  = new Text();

             //These lines will split the files.
             InputSplit input_split = context.getInputSplit();
             String FName = ((FileSplit) input_split).getPath().getName();

             for ( String word  : WORD_BOUNDARY .split(line)) 
             {
                if (word.isEmpty()) 
                {
                   continue;
                }
                //These lines will add delimiters with the words & filename. 
                currentWord  = new Text(word + "####" + FName);
                context.write(new Text(currentWord.toString()), new Text (FName));
             }
          }
       }
...