猪计数明显导致标量在输出错误中有多行

Roh*_*dey 2 hadoop apache-pig

我有一个猪关系,读取一些像 -

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的迭代器.后端错误:标量在输出中有多行.

我究竟做错了什么?

mr2*_*ert 5

问题在于:

 A1 = FOREACH A GENERATE A.header.member_id;
Run Code Online (Sandbox Code Playgroud)

你不应该引用AA.header.member_id.Pig正在对每个元组进行操作,A因此它只能看到每个元组中的值(仅在这种情况下header).由于Pig A在此范围内没有看到,因此它会检查它是否可以使用关系(在您的示例AA1,并且A2是关系).但是,如果它有一行,它只能使用该关系; 如果不是,则会产生您遇到的错误.

解决方案只是A1改为:

 A1 = FOREACH A GENERATE header.member_id;
Run Code Online (Sandbox Code Playgroud)