假设我有一个新袋子,里面有很多对(a,b):
Pair 1: { "A" : { "long" : someInteger1 }, "B" : { "int" : someInteger2 } }
Pair 2: { "A" : { "long" : someInteger3 }, "B" : { "int" : someInteger4 } }
......
我还有一个旧包,它和第一个包几乎一样(它可能有一些丢失的,不同的,或额外的一对),我想通过计算两个包中有多少对是相同的来比较新旧。一个袋子内可能有多对(a,b)具有相同的a或b。
我已经尝试过使用pig的方法:
在由a和b生成的散列码上加入新的和旧的,并计算有多少个a和b都匹配。计数只有我预期的一半左右。
在(a,b)上加入新的和旧的,并计算有多少个结果。计数只有我预期的一半左右(与上面的1相同)。
在a上加入新老,并计算b如何匹配。出于某种原因,联接的结果似乎有奇怪的重复项:
结果1:{“a\u new”:{“long”:someinteger1},“b\u new”:{“int”:someinteger2},“a\u old”:{“long”:someinteger1},“b\u old”:{“int”:someinteger2}
结果2:{“a\u new”:{“long”:someinteger1},“b\u new”:{“int”:someinteger2},“a\u old”:{“long”:someinteger1},“b\u old”:{“int”:someinteger3}
结果3:{“a\u new”:{“long”:someinteger1},“b\u new”:{“int”:someinteger2},“a\u old”:{“long”:someinteger1},“b\u old”:{“int”:someinteger4}
结果4:{“a\u new”:{“long”:someinteger1},“b\u new”:{“int”:someinteger2},“a\u old”:{“long”:someinteger1},“b\u old”:{“int”:someinteger5}
1条答案
按热度按时间yi0zb3m41#
datafu有一个很棒的
Pig
可以使用的自定义项。我想SetDifference()
就是你要找的。