Pig过滤器如果关系包含在第二关系中

时间:2012-12-18 07:16:24

标签: apache-pig

我在猪身上发现的一个常见的事情就是我与

这样的数据关系不大
A = id, attribute1:int, attribute2:double...

等数据有很大的关系
B = id, differentattribute:chararray...

我想要过滤B,以便它所有的元组都有一个包含在A中的id。 我知道我能做到,

C = JOIN A by id, B by id;
D = FOREACH C GENERATE B::id, B::differentattribute;

但这看起来非常低效。 using IN cause with PIG FILTER声称没有IN子句......如果没有,是否有更有效的方法来模拟使用UDF的IN?

1 个答案:

答案 0 :(得分:1)

如果A适合记忆,您可以查看replicated joins

  

片段复制连接是一种特殊类型的连接,如果可以正常工作   一个或多个关系足够小以适应主存储器。在   在这种情况下,Pig可以执行非常有效的连接[...]