我想在PIG上从另一组中减去一组。 我想做什么与“comm -23”命令在bash上做的完全相同,但我在互联网上找不到任何关于它的文档。
所以例如: A组是: 1 2 3 4 五 6
B组是: 3 4 五 6 7
我需要的输出是:GROUP A - GROUP B: 1 2
答案 0 :(得分:0)
查看datafu包。它包含许多有用的UDF,包括set操作。
答案 1 :(得分:0)
正如WinnieNicklaus所说,DataFu是一个很好的资源。我为这个用例编写了SetDifference UDF。假设您正在使用行李,这将适用于您的用例。
文档中的示例:
define SetDifference datafu.pig.sets.SetDifference();
-- input:
-- ({(1),(2),(3),(4),(5),(6)},{(3),(4)})
input = LOAD 'input' AS (B1:bag{T:tuple(val:int)},B2:bag{T:tuple(val:int)});
input = FOREACH input {
B1 = ORDER B1 BY val ASC;
B2 = ORDER B2 BY val ASC;
-- output:
-- ({(1),(2),(5),(6)})
GENERATE SetDifference(B1,B2);
}