2013-12-18 169 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