2015-07-27 3 views
0

Я думал, что могу получить вывод, который я хочу увидеть с помощью этого кода картографа и результат запроса оракула.Как я могу использовать map-reduce в этой ситуации?

outputkey.set(column[0] +","+column[1]){ 
if(column[1].contains("ora-")) 
    context.write(outputkey,outputvalue) 
} 

select record_id, message_text 
from x$dbgalertext; 

Но на самом деле этот код не мог ничего сделать.

Я хочу получить этот результат, используя запрос Hadoop и Oracle.

date   error  sum of errors 
column1  column2 column 3 
07-26  ora-00000 10 
07-26  ora-00001 20 
07-27  ora-00008 12 
...   ...   ... 

Что мне делать?

ответ

0

Вы не можете достичь с помощью только картографа, вам также необходимо иметь код редуктора. Где все подобные ключи агрегируются для подсчета суммы ошибок.

С вашим текущим кодом вы получите выход в

07-27,ora-00008 1 
... 
... 

В редукторе вы получите все ключи с Iterable значений. Так что просто подсчет этого будет вашей суммой ошибок.

context.write((key.split(,)[0]+" "+key.split(,)[1]),value.size()); 
Смежные вопросы