// Path: src/main/java/com/dsinpractice/samples/hadoop/mapred/generic/IdentityMapper.java
// public class IdentityMapper extends Mapper<Object, Object, Object, Object> {
//     @Override
//     protected void map(Object key, Object value, Context context) throws IOException, InterruptedException {
//         context.write(key, value);
//     }
// }
// 
// Path: src/main/java/com/dsinpractice/samples/hadoop/mapred/generic/ValueOnlyReducer.java
// public class ValueOnlyReducer extends Reducer<Object, Object, Object, Object> {
//     @Override
//     public void reduce(Object key, Iterable<Object> values, Context context) throws IOException, InterruptedException {
//         for (Object value : values) {
//             context.write(value, NullWritable.get());
//         }
//     }
// }


import com.dsinpractice.samples.hadoop.mapred.generic.IdentityMapper;
import com.dsinpractice.samples.hadoop.mapred.generic.ValueOnlyReducer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
package com.dsinpractice.samples.hadoop.mapred.merge;


public class MergeJob extends Configured implements Tool {

    @Override
    public int run(String[] args) throws Exception {
        Job job = new Job(getConf());
        job.setJarByClass(MergeJob.class);
        job.setMapperClass(IdentityMapper.class);
// Path: src/main/java/com/dsinpractice/samples/hadoop/mapred/generic/IdentityMapper.java
// public class IdentityMapper extends Mapper<Object, Object, Object, Object> {
//     @Override
//     protected void map(Object key, Object value, Context context) throws IOException, InterruptedException {
//         context.write(key, value);
//     }
// }
// 
// Path: src/main/java/com/dsinpractice/samples/hadoop/mapred/generic/ValueOnlyReducer.java
// public class ValueOnlyReducer extends Reducer<Object, Object, Object, Object> {
//     @Override
//     public void reduce(Object key, Iterable<Object> values, Context context) throws IOException, InterruptedException {
//         for (Object value : values) {
//             context.write(value, NullWritable.get());
//         }
//     }
// }


// Path: src/main/java/com/dsinpractice/samples/hadoop/mapred/merge/MergeJob.java
import com.dsinpractice.samples.hadoop.mapred.generic.IdentityMapper;
import com.dsinpractice.samples.hadoop.mapred.generic.ValueOnlyReducer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

package com.dsinpractice.samples.hadoop.mapred.merge;


public class MergeJob extends Configured implements Tool {

    @Override
    public int run(String[] args) throws Exception {
        Job job = new Job(getConf());
        job.setJarByClass(MergeJob.class);
        job.setMapperClass(IdentityMapper.class);
        job.setReducerClass(ValueOnlyReducer.class);