данные процесса карты могут быть нулевыми в hadoop - PullRequest
1 голос
/ 22 марта 2020

Я хочу включить статистику IPFlow

Первый столбец - серийный номер, второй - номер телефона, третий - данные восходящего потока, далее - данные нисходящего потока. Я хочу запустить программу mapreduce, которая объединяет восходящий поток, и добавить Данные нисходящего потока. Если данные не равны NULL, я могу их успешно запустить.

  1,1120487,10,20
  2,1120417,20,30
  3,1120427,30,40
  4,1120437,,50
    public class FlowMapper extends Mapper<LongWritable, Text, IntWritable,FlowBean> {
        IntWritable phone = new IntWritable();
        FlowBean flowbean= new FlowBean();
        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            int arg1;
            int arg2;
            String[] arr = value.toString().split("\t");
            phone.set(Integer.parseInt(arr[1]));
    //        System.out.println(Arrays.toString(arr));
    //        if(!Character.isDigit(Integer.parseInt(arr[2]))){
    //            arg1 = 0;
    //            System.out.println("come in ");
    //        }else{
    //            arg1 =Integer.parseInt(arr[2]);
    //            System.out.println("is this in your think");
    //        }
    //        if(arr[3] == null){
    //            arg2 = 0;
    //        }else{
    //            arg2 =Integer.parseInt(arr[3]);
    //        }
    //        System.out.println(arg1);
    //        System.out.println(arg2);
            arg1 =Integer.parseInt(arr[2]);
            arg2 =Integer.parseInt(arr[3]);
            flowbean.set(arg1, arg2);
            context.write(phone,flowbean);
        }
   } 

Как вы можете видеть, я пробовал в разделе комментариев, но мне не удалось. Я хочу дать число 0, когда данные

1 Ответ

0 голосов
/ 22 марта 2020

В ваших строках нет вкладок, поэтому это не возвращает массив из более чем одного элемента

value.toString().split("\t")

И ни один элемент в массиве никогда не будет нулевым, только пустая строка


Измените разделение на запятые или перепишите все в Spark со встроенным CSV-ридером

В любом случае, я предлагаю вам научиться использовать Junit

...