使用hadoop Mongo&;更新Mongo集合;猪

使用hadoop Mongo&;更新Mongo集合;猪,hadoop,apache-pig,Hadoop,Apache Pig,我正在使用MongoHadoop项目和PIG来实现以下目标 现在,我有两个pig LOAD语句,都有catid作为公共字段,所有其他字段都是唯一的。我希望创建一条记录,但其中包含两个字段 例如: Collection1: { catid, key1, key2 } Collection2: { catid, key3, key4 } 以及存储在mongo collection中的输出: _id, catid, key1, key2, key3, key4. 我试过: STORE A INT

我正在使用MongoHadoop项目和PIG来实现以下目标

现在,我有两个pig LOAD语句,都有catid作为公共字段,所有其他字段都是唯一的。我希望创建一条记录,但其中包含两个字段

例如:

Collection1: { catid, key1, key2 }

Collection2: { catid, key3, key4 }
以及存储在mongo collection中的输出:

_id, catid, key1, key2, key3, key4.
我试过:

STORE A INTO '$DB.tablename' USING com.mongodb.hadoop.pig.MongoStorage('update [catid]','{catid:1},{unique:false}');

STORE B INTO '$DB.tablename' USING com.mongodb.hadoop.pig.MongoStorage('update [catid]','{catid:1},{unique:false}');

但它总是插入。A、 B有10条具有公共catid的记录,mongo中的输出为20条记录。它没有向上插入。有什么帮助吗?谢谢。

解决方案是使用MongoUpdateStorage:

很有魅力