比较Pig中的Column值

时间:2014-12-02 04:02:41

标签: apache-pig

我是猪的新手,并试图学习猪。我想比较两列,以确定两列中是否存在值。我用Java编写了一个示例程序来完成同样的任务。现在,我正在尝试将此程序转换为Pig。

int [][] arr = {{1,2},{2,1},{3,2},{2,3}};
for (int i=0; i<arr.length; i++)
 for (int j=0; j<arr.length; j++)
  if (arr[j][0] == arr[i][1])
   System.out.println("found");
  else
   System.out.println("not found");

到目前为止,我已写过

grunt> read_file = LOAD 'file.txt' AS (i:int, j:int);
grunt> DUMP read_file;
(1,2)
(2,1)
(3,2)
(2,3)
grunt> grp = GROUP read_file BY $0;
grunt> dump grp;
(1,{(1,2)})
(2,{(2,1),(2,3)})
(3,{(3,2)})

将int的第一个值与bag中的第二个值进行比较,可以得到相同的结果。

1 个答案:

答案 0 :(得分:0)

你可以在FOREACH循环中使用这样的条件:

processed_file = FOREACH read_file GENERATE (i==j?i:'') AS i, (i==j?i:'') AS j ;

这会在“未找到”字样中为您提供空元组。案例。使用FILTER过滤掉空元组。