PIG:无效的场投影。架构中不存在投影字段 [dept_no]

Posted

技术标签:

【中文标题】PIG:无效的场投影。架构中不存在投影字段 [dept_no]【英文标题】:PIG: Invalid field projection. Projected field [dept_no] does not exist in schema 【发布时间】:2014-11-17 05:53:55 【问题描述】:

我有两个 .csv 文件,

1) 按部门名称、员工 ID 和聘用日期划分的经理列表。

2) 一个包含所有员工的文件,不分等级,并按hire_date、first name、last_name 划分。

我想输出标记为“chem”的特定部门中的所有经理的名字和姓氏。

我首先加载两个文件。

managers = LOAD....
employees = LOAD...

然后我尝试了一个同组。

grouped = COGROUP emplo BY first_name, manag by dept_no;

然后尝试过滤掉与特定部门分组的结果

only_chem = FILTER grouped BY dept_no == 'chem';

但是,当我 DUMP 结果时,它在最后一位中显示无效的场投影。架构中不存在投影字段 [dept_no]。

我在分组他们的方式上一定做错了。我想摆脱无关信息,但能够过滤掉所有员工,只从中获取经理,但我需要大型员工文件,因为它有名字/姓氏字段。

想法?谢谢你。

【问题讨论】:

【参考方案1】:

你可以这样试试吗?

D = FOREACH grouped
                      only_chem = FILTER  managers BY dept_no == 'chem';
                      GENERATE FLATTEN(only_chem);
                 
DUMP D;

如果这不起作用,请粘贴您的员工和经理文件的示例输入数据以及 2 加载 stmt。

【讨论】:

谢谢,虽然我找到了使用 JOIN 的不同解决方案,但我注意到以前的解决方案不起作用,因为我没有在 cogroup 之后变平。

以上是关于PIG:无效的场投影。架构中不存在投影字段 [dept_no]的主要内容,如果未能解决你的问题,请参考以下文章

在 PIG 中如何投影包中存在的明确字段?

Pig:加入后字段不存在

pig - 将数据从行转换为列,同时为特定行中不存在的字段插入占位符

Apache PIG - 加入后投影结果为 NULL

将多个参数传递给 Pig Filter UDF

错误:<path> 属性的值无效 -- 在 d3 投影转换期间 -- 无穷大和 NaN