我使用mongohadoop项目和pig来实现下面的功能。
现在,我有两个pig load语句,两个都有catid作为公共字段,所有其他字段都是唯一的。我想创建一个记录,但从两个字段。
例如:
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条记录。它没有向上插入。有什么帮助吗?谢谢。
1条答案
按热度按时间pftdvrlh1#
解决方案是使用mongoupdatestorage:
https://github.com/alabid/mongo-hadoop/blob/issues/pig/mongo-update-storage/pig/readme.md
很有魅力