2014-10-30 4 views
0

Это мой входной файл (custs.txt):Mapper не производит ожидаемые результаты

1002 | Surender | 23
1003 | Rahja | 24

И это моя программа:

Главная:

public class ReduceSideJoinMain { 

/** 
* @param args 
* @throws IOException 
* @throws ClassNotFoundException 
* @throws InterruptedException 
*/ 
public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException { 
    Configuration conf = new Configuration(); 
    JobConf config = new JobConf(); 
    config.setQueueName("omega"); 

    Job job = new Job(config,"word count"); 

    job.setJarByClass(ReduceSideJoinMain.class); 

    Path inputFilePath1 = new Path(args[0]); 
    Path outputFilePath2 = new Path(args[1]); 

    //MultipleInputs.addInputPath(job, inputFilePath1, TextInputFormat.class,CustMapper.class); 
    //MultipleInputs.addInputPath(job, inputFilePath2, TextInputFormat.class,TxnsMapper.class); 

    FileInputFormat.addInputPath(job, inputFilePath1); 
    FileOutputFormat.setOutputPath(job, outputFilePath2); 

    job.setInputFormatClass(TextInputFormat.class); 
    job.setOutputFormatClass(TextOutputFormat.class); 

    job.setMapperClass(CustMapper.class); 
    //job.setReducerClass(ReduceJoinMapper.class); 

    job.setMapOutputKeyClass(Text.class); 
    job.setMapOutputValueClass(Text.class); 

    job.setOutputKeyClass(Text.class); 
    job.setOutputValueClass(Text.class); 

    System.exit(job.waitForCompletion(true) ? 0 : 1); 

} 

} 

Mapper:

public class CustMapper extends Mapper<LongWritable,Text,Text,Text> 
{ 
public static IntWritable one = new IntWritable(1); 

    protected void map(LongWritable key, Text value, Context context) throws java.io.IOException,java.lang.InterruptedException 
    { 

    String line = value.toString(); 


    String arr[]= line.split("|"); 
    context.write(new Text(arr[0]), new Text(arr[1])); 

    } 
} 

Я получаю следующий вывод, что это неправильно:

 1 
     1 

Я ожидаю выход быть:

1002 surender 
1003 Rahja 

Почему это не дает ожидаемый результат? Есть ли проблема с методом Split?

ответ

1

использования String arr[] = line.split("\\|");

+0

Совершенный .. я попробовал его и он получил решен, и я также я пришел узнать, что является основной причиной. большое спасибо –

Смежные вопросы