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]的主要内容,如果未能解决你的问题,请参考以下文章