我正在使用mongo-hadoop项目和使用PIG实现以下目标。
现在,我有2个猪LOAD语句,两个都有catid作为公共字段,所有其他字段都是唯一的。我希望创建1条记录,但要使用两条记录。
例如:
Collection1: { catid, key1, key2 }
Collection2: { catid, key3, key4 }
并将输出存储在mongo集合中:
_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个记录。它没有坚持。对此有何帮助?感谢。
答案 0 :(得分:0)
解决方案是使用MongoUpdateStorage:
https://github.com/alabid/mongo-hadoop/blob/issues/pig/mongo-update-storage/pig/README.md
像魅力一样工作