0

我有一个 JSON 文件包含诸如 machine_id、category 和 ... Category 包含机器的状态,例如“alarm”、“failure”。我只是想看看每个 machine_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 文件的全部值。我将不胜感激任何帮助。

4

0 回答 0