2014-04-18 6 views
0

궁극적으로 내가 달성하기를 원하는 것은 특정 날짜에 생성 된 총 항목 수로 선 그래프를 만드는 것입니다. 지금까지 내가 한 것은 날짜 부분별로 그룹을 관리하는 mapreduce를 사용하는 것입니다. 그러나, 내가 할 수없는 것은 결과와 프로세스를 사용할 수있는 것으로 가져가는 것입니다.중첩 된 해시에 대한 문제

[ 
    { 
     "_id" => 1970-01-01 00:00:00 UTC, 
     "value" =>{ "count" => 25.0 } 
    },    
    { 
     "_id" =>2014-10-04 00:00:00 UTC, 
     "value" =>{ "count"=>2.0 } 
    }, 
    { 
     "_id" => 2014-11-04 00:00:00 UTC, 
     "value" => { "count"=> 2.0 } 
    }, 
    { 
     "_id" => 2014-12-04 00:00:00 UTC, 
     "value" => { "count"=> 9.0 } 
    } 
] 

내가해야 할 것은 각 _id을 :

다음 내 맵리 듀스 반환, 당신이 무슨 뜻인지의 아이디어를 제공하기 위해 (날짜 시간은 내가 그 이상으로거야 몇 가지 작업이 필요합니다) 내가 쉽게 Google 차트에 전달할 수있는 방식으로 count을 보여줍니다. 그래서 같이 할 필요 것입니다 :

1970-01-01 00:00:00 UTC = 25 
2014-10-04 00:00:00 UTC = 2 
2014-11-04 00:00:00 UTC = 2 
2014-12-04 00:00:00 UTC = 9 

그러나 내가 중첩 된 해시의 배열을 통해 루프를보고 나는 새로운 변수로 필요한 데이터를 당길 수없는 시도 상관없이. 어떤 도움이라도 대단히 감사하겠습니다!

+0

어떤 형식입니까? 그것은 유효한 JSON이나 Ruby가 아닌 것으로 보입니다. –

+1

@Mark : '_id'값이'Time' 인스턴스 인 해시 배열에서'inspect' 출력을 봅니다. –

답변

1
str = [{"_id"=>"1970-01-01 00:00:00 UTC", "value"=>{"count"=>25.0}}, {"_id"=>"2014-10-04 00:00:00 UTC", "value"=>{"count"=>2.0}}, {"_id"=>"2014-11-04 00:00:00 UTC", "value"=>{"count"=>2.0}}, {"_id"=>"2014-12-04 00:00:00 UTC", "value"=>{"count"=>9.0}}].map do |row| 
    "#{row["_id"]} = #{row["value"]["count"].to_i}" 
end.join("\n") 

puts str 
#>> 
1970-01-01 00:00:00 UTC = 25 
2014-10-04 00:00:00 UTC = 2 
2014-11-04 00:00:00 UTC = 2 
2014-12-04 00:00:00 UTC = 9