0

我发现我在猪身上想要的一个共同点是我将与数据建立一个小的关系,比如

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;

但这似乎非常低效。使用带有 PIG FILTER的 IN 原因声称没有 IN 子句......如果没有,是否有更有效的方法来使用 UDF 模拟 IN?

4

1 回答 1

1

如果A适合内存,您可以查看复制的连接

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

于 2012-12-18T17:41:26.100 回答