通过日期过滤器传递hadoop作业的输入查询(mongo.input.query)

mf98qq94  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(264)

我正在使用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") } }

任何建议都有助于解决这个问题。
谢谢。

mqkwyuun

mqkwyuun1#

对日期和其他不属于本机json的数据类型使用扩展json。例如:

{"created_at":{"$gt":{"$date":1182470400000}}}

(使用日期的长表示法)。

相关问题