我有数千万条记录,即客户ID和城市ID对。有数以千万计的唯一客户ID,只有几百个唯一的城市ID。我想进行合并以获取特定客户ID汇总的所有城市ID,然后拉回所有记录。我想在Hadoop上使用Pig来按客户ID分组,并想知道这是否是最有效的方法。

还想知道在Hadoop中进行排序是否会产生开销(只要客户1和客户2的所有城市都正确汇总,我都不在乎customer1是否在customer2之前)?您认为Spark更好吗?

这是输入示例

CustomerID1 City1
CustomerID2 City2
CustomerID3 City1
CustomerID1 City3
CustomerID2 City4

我想要这样的输出,
CustomerID1 City1 City3
CustomerID2 City2 City4
CustomerID3 City1

提前致谢,

最佳答案

我会做

FOREACH (GROUP data_set BY CustomerId) GENERATE
group as CustomerId,
data.City as City;

07-26 05:32