1
我的理解是,内部连接应该采用具有相同键的A和B的交集,所以交集中结果的数量永远不会超过A或B.但是,我运行了一个猪脚本,它应该默认情况下执行一个内部连接,这表明交叉点比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?
如果你对你在两个表中加入的值有不同的看法,你可以得到更多的行。 –
从两个表之间的内部联接返回的行数可以在0到(table1上的行数* table2上的行数) –
@ConradFrix谢谢,就是这样。 –