 The input data is treated as fields separated by a user specified
 * separator (the default value is "\t"). The user can specify a list of
 * fields that form the reduce output keys, and a list of fields that form
 * the reduce output values. The fields are the union of those from the key
 * and those from the value.
 * 
 * The field separator is under attribute "mapreduce.fieldsel.data.field.separator"
 * 
 * The reduce output field list spec is under attribute 
 * "mapreduce.fieldsel.reduce.output.key.value.fields.spec". 
 * The value is expected to be like
 * "keyFieldsSpec:valueFieldsSpec" key/valueFieldsSpec are comma (,) 
 * separated field spec: fieldSpec,fieldSpec,fieldSpec ... Each field spec
 * can be a simple number (e.g. 5) specifying a specific field, or a range
 * (like 2-5) to specify a range of fields, or an open range (like 3-) 
 * specifying all the fields starting from field 3. The open range field
 * spec applies value fields only. They have no effect on the key fields.
 * 
 * Here is an example: "4,3,0,1:6,5,1-3,7-". It specifies to use fields
 * 4,3,0 and 1 for keys, and use fields 6,5,1,2,3,7 and above for values.
 The input data is treated as fields separated by a user specified
 * separator (the default value is "\t"). The user can specify a list of
 * fields that form the reduce output keys, and a list of fields that form
 * the reduce output values. The fields are the union of those from the key
 * and those from the value.
 * 
 * The field separator is under attribute "mapreduce.fieldsel.data.field.separator"
 * 
 * The reduce output field list spec is under attribute 
 * "mapreduce.fieldsel.reduce.output.key.value.fields.spec". 
 * The value is expected to be like
 * "keyFieldsSpec:valueFieldsSpec" key/valueFieldsSpec are comma (,) 
 * separated field spec: fieldSpec,fieldSpec,fieldSpec ... Each field spec
 * can be a simple number (e.g. 5) specifying a specific field, or a range
 * (like 2-5) to specify a range of fields, or an open range (like 3-) 
 * specifying all the fields starting from field 3. The open range field
 * spec applies value fields only. They have no effect on the key fields.
 * 
 * Here is an example: "4,3,0,1:6,5,1-3,7-". It specifies to use fields
 * 4,3,0 and 1 for keys, and use fields 6,5,1,2,3,7 and above for values. | FieldSelectionReducer.java