在我的用例中通过高效使用 Spark 或 pig 组?

using Spark or pig group by efficient in my use case?

我有一千万条记录,是customer ID和city ID pair。有几千万唯一的客户ID,只有几百个唯一的城市ID。我想进行合并以获取针对特定客户 ID 聚合的所有城市 ID,并拉回所有记录。我想在 Hadoop 上使用 Pig 按客户 ID 分组来执行此操作,并想知道这是否是最有效的方法。

还想知道在 Hadoop 中排序是否有开销(我不关心 customer1 是否在 customer2 之前,只要为 customer1 和 customer 2 正确聚合了所有城市)?你觉得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;