gpt4 book ai didi

hadoop - Pig CROSS 与复制的 JOIN

转载 作者:可可西里 更新时间:2023-11-01 14:22:31 27 4
gpt4 key购买 nike

我需要在 Pig 中进行非等值连接。我首先要尝试的是 CROSS + filter:

    together = CROSS A, B;
filtered = FILTER together BY (JOIN PREDICATE);

但是,其中一个关系肯定小到可以放入内存。这让我想知道 CROSS 在 Pig 中是如何实际实现的。它可以进行“复制”交叉吗?

如果没有,我可以这样做:

    small = FOREACH small GENERATE *, 1 AS key:int;
large = FOREACH large GENERATE *, 1 AS key:int;
together = JOIN large BY key, small BY key USING 'replicated';
filtered = FILTER together BY (JOIN PREDICATE);

第二种方法会带来任何性能提升吗?

最佳答案

因此,对于具有 2M 记录的大关系和具有 500K 记录的小关系,复制连接要快得多。

但是,两者都太慢了,我最终实现了一个允许正常复制连接的 UDF,代价是稍微增加了大关系的大小。

对于不可能做到这一点的情况,使用假 key 进行复制连接似乎是可行的方法。

关于hadoop - Pig CROSS 与复制的 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25261903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com