2013-12-18 168 views
0

我工作的一个MongoDB的结构具有树形结构。由于在这个环节 (see docs的Hadoop MapReduce的用java

我想知道什么将在钥匙传递给地图方法。它是树中最顶层的父亲,我是否应该迭代以获取我的值列表。

我有一个公司作为父母和公司名称,网站,产品等作为孩子的树型结构。该产品反过来将产品名称作为其孩子。

所以,如果我需要公司名称是关键,我应该如何得到它使用Java?

这里会有什么关键 - 公司?

如果在java中有mongoDB的mapreduce有任何示例程序或文档,任何人都可以尽快提供给我吗?

谢谢

+0

有通过Java驱动程序在这里降低地图的例子:http://www.javacodegeeks.com/2012/06/mapreduce-with-mongodb.html。我发现把“mongodb map reduce java”放入Google,那里有更多的答案... – Trisha

+0

谢谢Trisha。上面的链接正在执行MongoDB中可用的内置映射。我想要一个使用Hadoop和MongoDB的Map Reduce示例。我终于明白了。 – krish

回答

0

谢谢Trisha。上面的链接正在执行MongoDB中可用的内置映射。我想要一个使用Hadoop和MongoDB的Map Reduce示例。我终于明白了。

public static class MongoMapper extends 
     Mapper<Object, BasicDBObject, Text, BSONWritable> { 


    public void map(Object key, BasicDBObject value, Context context) 
      throws IOException, InterruptedException { 


     //This gives all the documents of the company 
     BasicDBObject company = (BasicDBObject) value.get("company"); 

     // This gets the company name 
     name = (String) company.get("name"); 

     //This gives the phone number 
     phone = (String) company.get("phone"); 

如果我们需要访问公司的产品列表中,我们可以检索使用BasicDBList

// This will give the list of products and we can use product.get() 
// to get the product name and other details. 
BasicDBList product = (BasicDBList) company.get("products"); 

我提到了这个链接SlideShare上。

http://www.slideshare.net/spf13/introduction-to-mongodb-and-hadoop

+0

感谢您发布您的答案。在那里很少有特定于Hadoop - BasicDBObject的方法,它的方法是标准MongoDB Java驱动程序的一部分。只有你扩展Mapper的事实是Hadoop特定的,但你似乎没有实现一个实际的地图功能(更多示例在这里:https://github.com/mongodb/mongo-hadoop/blob/master/实例/ README.md)。你真的需要Hadoop吗? – Trisha