我的理解是内部连接应该采用具有相同键的A和B的交集,因此交集中的结果数量应该永远不会超过A或B.但是,我运行了一个猪脚本,默认情况下应该执行内连接,这表明交叉点中的结果比A或B更多。可能导致这种情况的原因是什么?
OLD_count = FOREACH (GROUP OLD ALL) GENERATE COUNT(OLD);
NEW_count = FOREACH (GROUP NEW ALL) GENERATE COUNT(NEW);
G = JOIN NEW BY (X, Y), OLD by (X, Y);
JOIN_count = FOREACH (GROUP G ALL) GENERATE COUNT(G);
DUMP OLD_count;
DUMP NEW_count;
DUMP JOIN_count;
-- Results (approximate):
-- (70000000)
-- (80000000)
-- (85000000) wtf?