0

我正在使用 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 条记录。它没有更新。对此有什么帮助吗?谢谢。

4

1 回答 1

0

解决方案是使用 MongoUpdateStorage:

https://github.com/alabid/mongo-hadoop/blob/issues/pig/mongo-update-storage/pig/README.md

奇迹般有效

于 2013-08-24T03:57:08.570 回答