mio mapper deve inviare i seguenti tuple:Come Java Hadoop Mapper può inviare più valori
<custID,prodID,rate>
E voglio inviare al riduttore la custID come una chiave, e come valore prodID e tasso di insieme, come sono necessari per la fase di riduzione. Qual è il modo migliore per farlo?
public void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
String[] col = value.toString().split(",");
custID.set(col[0]);
data.set(col[1] + "," + col[2]);
context.write(custID, data);
}
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
for (Text val : values) {
String[] temp = val.toString().split(",");
Text rate = new Text(temp[1]);
result.set(rate);
context.write(key, result);
}
}
Perché non è possibile inviare più valori? Niente limita il numero di coppie chiave-valore che può produrre una singola attività mappa. – kichik