我就处于这种情况。我有一个变量data
,其中包含以下格式的值列表:
data:(id:int, value:float)
然后我有另一个包含一些元数据的变量:
m:(id:int, var1:int, var2:int)
我想做的是:
- 过滤
m
以获取满足元数据某些条件的id
列表 - 过滤
data
,仅保留第一个查询的结果集中id
的元组。
即像这样:
wanted_metadata = filter m by CONDITION
wanted_ids = foreach wanted_metadata generate id
wanted_data = filter data by id IS INCLUDED IN wanted_ids
目前,我设法使用 JOIN 运算符来做到这一点,但我更愿意使用一些“成员资格检查”运算符。
你能帮我吗?
最佳答案
如果您的数据足够小,可以放入 RAM,则使用 replicated join ,这是映射端连接,它作为成员资格检查来实现。
关于apache-pig - 根据另一个查询的结果过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776577/