Várias entradas do Hadoop

Estou usando o hadoop map red e quero calcular dois arquivos. Minha primeira iteração Map / Reduce está fornecendo um arquivo com um número de identificação de par como este:

A 30
D 20

Meu objetivo é usar esse ID do arquivo para associar-se a outro arquivo e ter outra saída com um trio: ID, Número, Nome, assim:

A ABC 30
D EFGH 20

Mas não tenho certeza se o uso do Map Reduce é a melhor maneira de fazer isso. Seria melhor, por exemplo, usar um leitor de arquivos para ler o segundo arquivo de entrada e obter o nome por ID? Ou posso fazê-lo com o Map Reduce?

Se sim, estou tentando descobrir como. Eu tentei uma solução MultipleInput:

MultipleInputs.addInputPath(job2, new Path(args[1]+"-tmp"),
    TextInputFormat.class, FlightsByCarrierMapper2.class);
MultipleInputs.addInputPath(job2, new Path("inputplanes"),
    TextInputFormat.class, FlightsModeMapper.class); 

Mas não consigo pensar em nenhuma solução para combinar as duas e obter a saída que desejo. O jeito que eu tenho agora está apenas me dando a lista como este exemplo:

A ABC
A 30
B ABCD
C ABCDEF
D EFGH
D 20

Depois da minha última redução, estou conseguindo:

N125DL  767-332
N125DL  7   , 
N126AT  737-76N
N126AT  19  , 
N126DL  767-332
N126DL  1   , 
N127DL  767-332
N127DL  7   , 
N128DL  767-332
N128DL  3

Quero o seguinte: N127DL 7 767-332. E também não quero os que não combinam.

E esta é a minha classe de redução:

a classe pública FlightsByCarrierReducer2 estende o redutor {

String merge = "";
protected void reduce(Text token, Iterable<Text> values, Context context) 
                            throws IOException, InterruptedException {

    int i = 0;  
    for(Text value:values)
    {
        if(i == 0){
            merge = value.toString()+",";
        }
        else{
            merge += value.toString();
        }
        i++;
    }

        context.write(token, new Text(merge));

}

}

Atualizar:

http://stat-computing.org/dataexpo/2009/the-data.html Este é o exemplo que estou usando.

Estou tentando com: TailNum e Canceled que é (1 ou 0) obter o nome do modelo que corresponde ao TailNum. Meu arquivo com o modelo tem um TailNumb, Model e outras coisas. Minha saída atual é:

N193JB ERJ 190-100 IGW

N194DN 767-332

N19503 EMB-135ER

N19554 EMB-145LR

N195DN 767-332

N195DN 2

Primeiro vem a chave, depois o modelo, as chaves que têm vôos cancelados, apperas abaixo do modelo

E eu gostaria de uma chave de trio, número do modelo cancelado, porque eu quero o número de cancelamentos por modelo

questionAnswers(2)

yourAnswerToTheQuestion