我以为我可以使用此映射器代码和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
... ... ...
我该怎么办?
答案 0 :(得分:0)
使用mapper无法实现,还需要有reducer代码。所有类似的密钥都聚合在一起计算错误总和。
使用您现有的代码,您将获得输出
07-27,ora-00008 1
...
...
在reducer中,您将收到具有可迭代值的所有键。所以只计算一下这将是你的错误总和。
context.write((key.split(,)[0]+" "+key.split(,)[1]),value.size());