我有一个猪关系,读取一些像 -
describe A;
A:{header:(member_id, field_2,..)}
Run Code Online (Sandbox Code Playgroud)
现在我想把这些成员弄清楚,所以我这样做 -
A1 = FOREACH A GENERATE A.header.member_id;
A2 = LIMIT A1 10;
dump A2;
Run Code Online (Sandbox Code Playgroud)
这会运行很长一段时间,最终导致错误 - 无法打开别名A2的迭代器.后端错误:标量在输出中有多行.
我究竟做错了什么?
问题在于:
A1 = FOREACH A GENERATE A.header.member_id;
Run Code Online (Sandbox Code Playgroud)
你不应该引用A在A.header.member_id.Pig正在对每个元组进行操作,A因此它只能看到每个元组中的值(仅在这种情况下header).由于Pig A在此范围内没有看到,因此它会检查它是否可以使用关系(在您的示例A中A1,并且A2是关系).但是,如果它有一行,它只能使用该关系; 如果不是,则会产生您遇到的错误.
解决方案只是A1改为:
A1 = FOREACH A GENERATE header.member_id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2741 次 |
| 最近记录: |