我在猪身上发现的一个常见的事情就是我与
这样的数据关系不大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?
答案 0 :(得分:1)
如果A
适合记忆,您可以查看replicated joins:
片段复制连接是一种特殊类型的连接,如果可以正常工作 一个或多个关系足够小以适应主存储器。在 在这种情况下,Pig可以执行非常有效的连接[...]