在这种情况下如何使用map-reduce?

时间:2015-07-27 20:57:12

标签: oracle hadoop

我以为我可以使用此映射器代码和oracle查询的结果获得我想看到的输出。

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
...          ...         ...

我该怎么办?

1 个答案:

答案 0 :(得分:0)

使用mapper无法实现,还需要有reducer代码。所有类似的密钥都聚合在一起计算错误总和。

使用您现有的代码,您将获得输出

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

在reducer中,您将收到具有可迭代值的所有键。所以只计算一下这将是你的错误总和。

context.write((key.split(,)[0]+" "+key.split(,)[1]),value.size());