我一直在使用mongoinputformat,它允许mongodb集合中的所有文档通过hadoop编写的mapreduce作业。
正如您在提供的示例(this、this和this)中所看到的,提供给Map器的文档所处的类型是bsonobject(java中的接口)。
现在我也非常喜欢morphia,它允许将mongodb中的原始数据Map到pojo中,而pojo更易于使用。
因为我只能获得一个bsonobject作为输入,所以我考虑使用morphia wiki本页底部描述的方法:
BlogEntry blogEntry = morphia.fromDBObject(BlogEntry.class, blogEntryDbObj);
我的问题是这个方法需要dbobject而不是bsonobject。dbobject实际上是:
public interface DBObject extends BSONObject
如您所见,我不能简单地从bsonobject转换为dbobject并调用提供的方法。
我怎样才能最好地处理这个问题?
2条答案
按热度按时间w3nuxt5m1#
我找到了一个适合我的解决方案:
首先将其转换为json文本字符串
将其解析为dbobject
使用morphia将其Map到一个有用的示例。
实际上,我现在有了这样的东西:
ftf50wuq2#
你会注意到
BSONObject
以及DBObject
接口非常相似。仅仅因为converson不存在并不意味着创建一个琐碎的converson是不容易的:现在,你只需要