2013-04-12 4 views
0

Mongodb 및 MapReduce에 매우 새로움이지만 내가 할 수있는 것을 좋아하고 거의 좋아졌습니다. 그러나 MapReduce의 결과를 CSV로 내보내는 데 문제가 있습니다.Mongodb MapReduce - Mongoexport에 누락 된 열 값

여기에 내가 뭘하는지입니다 :

var mapFunction1 = function() { 
         emit({isrc: this.isrc, country: this.country}, this.amount_payable); 
        }; 


var reduceFunction1 = function(keyIsrc, valuesAmountPayable) { 
         return Array.sum(valuesAmountPayable); 
        }; 

db.sales.mapReduce(
     mapFunction1, 
     reduceFunction1, 
      { out: "sales_with_total_by_country_and_isrc" } 
       ) 

db.sales_with_total_by_country_and_isrc.find() 

내가 찾기를 실행하면 내가, ISRC를, COUNTRYS 및 값이 모두 존재 원하는 결과를 볼 수 있습니다 위.

다음과 같이 내 내보내기를 실행하고 있습니다.이 명령은 정상적으로 실행되며 모든 열이 있지만 ISRC 또는 국가 값이 아닌 값 열에 값만 있습니다.

mongoexport --csv -d test -c sales_with_total_by_country_and_isrc -q '{value: {$ne: 0}}' -f "isrc","country","value" -o sales_with_total_by_country_and_isrc.csv 

내가 뭘 잘못하고 있니? 지금까지 올바른 방법으로 -f를 사용하여 내보낼 필드를 전달한다고 말할 수 있습니다. 사전에

감사합니다.

답변

0

좋아, 나 자신을 밖으로 sussed. 난 그냥 내 mongoexport 호출에 -f "_id.isrc","_id.country","value"를 호출 할 필요

{ "_id" : { "isrc" : "", "country" : "AE" }, "value" : 0.391081 } 

: 같은

같이, 결과 컬렉션 보았다.

희망은 다른 사람들에게 도움이되기를 바랍니다.

+0

내 값 중 하나가 합계가 아닌 '0.00590100000000.0059010.133150000000.0053100.002960.043208000.00189'와 같은 별도의 값을 연결합니다. 누구든지 전에 이것을 보았습니까? 거의 200k에서 단 하나의 라인입니다. Orignal 보고서 520 만 라인, 그래서 나쁘지 않아하지만 그것을 수정하고 싶습니다. – Raoot