json作为mapreduce中的输入

1dkrff03  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(260)

我有一个json文件包含诸如machine\u id、category和。。。类别包含机器的状态,如“报警”、“故障”。我只是想看看每个机器的id使用rmr2报告了多少次。例如,如果我有以下内容:

machine_id, state
48, alarm
39, failure
48, utilization

我喜欢看到这样的结果:

48,2
39,1

我所做的:我编写了一个简单的mapreduce来读取json文件的值,并将其作为第二个mapreduce的输入。代码为:

mp = function(k,v){
machine_id=v$machine_id
keyval(machine_id,1) }
rd = function(k,v) keyval(k,length(v))
mapreduce(input = mapreduce(input='\user\cloudera\sample.json', input.format="json" , map=function(k,v) keyval(k,v)) , map=mp, reduce = rd)

不幸的是,它只返回json文件的最后两个值。它似乎没有读取json文件的全部值。如果有任何帮助,我将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题