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謝謝,就是這樣。 –