mongo.input.query,其中$date未过滤hadoop的输入

sgtfey8w  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(413)

我有一个切分的输入集合,我想在将它发送到hadoop集群进行map reduce计算之前对它进行过滤。
我在$hadoopjar命令中有这个参数

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

而且很有效。输出不会Map任何不满足此查询的数据。
但这不起作用:

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

没有数据作为输出生成。
1388620740000表示2014年1月1日星期三23:59:00 gmt+0000(gmt)的日期。安装程序使用的是hadoop2.2,mongo2.4.9,这个连接器版本(2.2-1.2.0)。
没有错误消息,只是一个标准的hadoop成功消息。
我的语法不正确还是遗漏了什么?
你能给我指一些调试工具/方法吗?

tquggr8v

tquggr8v1#

调试方法:
在蒙哥:

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"}}}'

相关问题