apache-pig - 根据另一个查询的结果过滤列表

标签 apache-pig

我就处于这种情况。我有一个变量data,其中包含以下格式的值列表:

data:(id:int, value:float)

然后我有另一个包含一些元数据的变量:

m:(id:int, var1:int, var2:int)

我想做的是:

  1. 过滤m以获取满足元数据某些条件的id列表
  2. 过滤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/

相关文章:

java - pig 单元 : Unable to open iterator

hadoop - 使用 apache Pig 将文件分成 4 个相等的部分

hadoop - 将行值合并到列

hadoop - 从 PIG JOIN 的其他关系中选择一个关系所有字段和一个或两个,如何?

hadoop - 如何找到运行Pig作业的节点

hadoop - 语法错误,在 'groupped'或附近出现意外符号

java - 远程运行 Pig 作业

hadoop - Apache PIG - 如何更改文件的标准输出名称 "part-r-00000"?

apache-pig - 使用 Apache Pig 递归列出目录

hadoop - SQL-HIVE-PIG-Mapreduce