我有数千万条记录,即客户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;