public int run(String[] args) throws Exception {
        System.out.println("In main ---- run");
        JobConf conf = new JobConf(getConf(), Main.class);
        conf.setJobName("C45");
        conf.set("currentIndex", String.valueOf(current_index));

        // the keys are words (strings)
        conf.setOutputKeyClass(Text.class);
        // the values are counts (ints)
        conf.setOutputValueClass(IntWritable.class);

        conf.setMapperClass(MapClass.class);
        conf.setReducerClass(Reduce.class);
        System.out.println("back to run");

        FileSystem fs = FileSystem.get(conf);

        Path out = new Path(args[1] + current_index);
        if (fs.exists(out)) {
            fs.delete(out, true);
        }

        FileInputFormat.setInputPaths(conf, args[0]);
        FileOutputFormat.setOutputPath(conf, out);

        JobClient.runJob(conf);
        return 0;
    }