我正在使用Hadoop为我的应用程序编写Map Reduce作业。
我发现通过编辑属性mongo.input.query
可以在作业执行之前设置查询条件。
但是当我尝试提供以下查询时(为MongoDB添加了ISODate)
<property>
<name>mongo.input.query</name>
<value>{ "created_at": { "$gt": ISODate("2013-06-12") } }</value>
<value></value>
</property>
实际上,这个查询在MongoVUE查询控制台中运行时工作正常,但是当使用Hadoop作业运行时,它显示为
java.lang.IllegalArgumentException: Provided JSON String is not representable/parseable as a DBObject.
Caused by: com.mongodb.util.JSONParseException:
{ "created_at": { "$gt": ISODate("2013-06-12") } }
任何建议都有助于解决此问题。
感谢。
答案 0 :(得分:2)
对于不属于本机JSON的日期和其他数据类型,请使用extended json。 例如:
{"created_at":{"$gt":{"$date":1182470400000}}}
(使用日期的长表示法。)