在 pig 中的 foreach 语句后过滤

Filter after a foreach statement in pig

所以我有 table 一列,U 和列名称 u_id。

filter_out = filter A BY s_id == (FOREACH u GENERATE u_id);

我基本上是在尝试通过匹配 u table 中的每一行来过滤 A table。 所以本质上,如果来自 A(table1) 的 s_id 与第二 tables 中的 u_id 匹配,则将其过滤掉

我一直收到不匹配的输入 'u' expecting LEFT_PAREN 错误

------------第二种方法----------------

并且还尝试将 u 转换为元组

totuple = FOREACH u GENERATE TOTUPLE (u_id);

filter_out = filter A BY s_id in (totuple);

和错误 A column needs to be projected from a relation for it to be used as a scalar

相反,JOIN 两个 tables.Doing 因此只会将 table A 中的记录与 table U.Finally 中的记录相匹配,生成所需的列。

B = JOIN A BY s_id,U BY u_id;
C = FOREACH B GENERATE B.[=10=]; -- Select the needed columns from the joined relation.
DUMP C;