2014-01-31 2 views
1

У меня есть закрытая коллекция входных данных, которую я хочу фильтровать, прежде чем отправлять ее в мой кластер hadoop для вычисления сокращения карты.

У меня есть этот параметр в моей $ Hadoop банку - команда

mongo.input.query='{_id.uuid:"device-964693"}' 

и она работает. Результат не преобразует данные, которые не удовлетворяют этому запросу.

Это, однако, не работает:

mongo.input.query='{_id.day:{\\$lt:{\\$date:1388620740000}}}' 

данные не производится в качестве выходного сигнала.

1388620740000 представляет дату Wed 01.01.2014 23:59:00 GMT + 0000 (GMT). Настройка использует hasoop 2.2, mongo 2.4.9, this версия разъема (2.2-1.2.0).

Нет сообщений об ошибках, просто стандартное сообщение об успешном удалении.

Является ли мой синтаксис неправильным или что я пропустил?

Не могли бы вы указать мне некоторые инструменты/методы отладки для этого?

+0

это, кажется, правильный синтаксис: mongo.input.query = '{"_id.day": {"$ lt": {"$ date": "2013-12-31 23: 00: 00.000Z"}}}' – marko

ответ

1

методы отладки:

в Монго:

db.currentOp(true).inprog.forEach(
    function(d){ 
    if(d.ns == "test.collection" && d.query.query["_id.day"]) 
     printjson(d); 
    }) 

терминал дружественный синтаксис:

$ hadoop jar... ...mongo.input.query='{"_id.day":{"$lt":{"$date":"2014-01-19T23:00:00Z"}}}'