假设我有一个装有许多对(A,B)的袋子NEW:
Pair 1: { "A" : { "long" : someInteger1 }, "B" : { "int" : someInteger2 } }
Pair 2: { "A" : { "long" : someInteger3 }, "B" : { "int" : someInteger4 } }
......
我有另一个旧袋,与第一个袋几乎相同(它可能有一些丢失,不同或多余的对),我想通过计算两个袋中有多少对相同来比较旧和新。 袋子中可能有多对(A,B),它们具有相同的A或相同的B。
我已经尝试过使用Pig的事情:
计算有A和B都匹配的人数。计数只是关于
我所期望的一半。
是。该数量仅是我预期的一半(与上面的1相同)。
原因是,合并结果似乎有奇怪的重复项:
结果1:{“A_new”:{“long”:someInteger1},“B_new”:{“int”:someInteger2},“A_old”:{“long”:someInteger1},“B_old”:{“int”:someInteger2 }}
结果2:{“A_new”:{“long”:someInteger1},“B_new”:{“int”:someInteger2},“A_old”:{“long”:someInteger1},“B_old”:{“int”:someInteger3 }}
结果3:{“A_new”:{“long”:someInteger1},“B_new”:{“int”:someInteger2},“A_old”:{“long”:someInteger1},“B_old”:{“int”:someInteger4 }}
结果4:{“A_new”:{“long”:someInteger1},“B_new”:{“int”:someInteger2},“A_old”:{“long”:someInteger1},“B_old”:{“int”:someInteger5
最佳答案
DataFu有一个很棒的Pig
UDF库可供您使用。我认为SetDifference()
是您想要的。
关于hadoop - 我如何找到两个袋对(A,B)之间的差异,其中A和B都不都是唯一的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32541574/