如何在使用猪拉丁分组后找到类似的元组?

时间:2013-06-19 17:42:19

标签: hadoop apache-pig

我有一个具有以下结构的数据 -

美国约翰一世 玛丽CN 3史密斯美国 4约翰美国 5 Mary CN

我需要在每个国家/地区内找到重复的名称。结果应该是这样的 {US:(1,John,US),(4,John,US)} {CN:(2,Mary,CN),(5,Mary,CN)}。有人可以帮我解决我的问题吗?

我可以加载数据并按国家/地区名称对其进行分组。

1 个答案:

答案 0 :(得分:2)

我假设你有以下格式的输入:

1 John US
2 Mary CN
3 Smith US
4 John US
5 Mary CN 

在这种情况下,您可以提出以下建议:

A = load 'data.txt' using PigStorage(' ') 
      as (id:int, name:chararray, country:chararray);
B = foreach (group A by (country, name)) generate group.country, A, 
      COUNT(A) as count;
C = foreach (FILTER B by count > (long)1) generate country, A;

dump C;
(CN,{(2,Mary,CN),(5,Mary,CN)})
(US,{(1,John,US),(4,John,US)})