3

我有以下猪脚本:
我的文件 1.txt 有 A 1
B 2
C 3
D 4

grunt> A = load '1.txt' using PigStorage(' ') as (a:chararray,b:int);  
grunt> B = foreach A generate A.a;  
grunt> dump B;

它给了我以下错误

错误 org.apache.pig.tools.grunt.Grunt - 错误 2997:无法从支持的错误重新创建异常:org.apache.pig.backend.executionengine.ExecException:错误 0:标量在输出中包含多行。第一名:(A,1),第二名:(B,2)

4

1 回答 1

6

您不必引用aas A.a。试试这个:

grunt> A = load '1.txt' using PigStorage(' ') as (a:chararray,b:int);  
grunt> B = foreach A generate a;  
grunt> dump B;

C.x用于从袋子中取出“列”。说C是一袋物品,然后C.x将创建一个包含该袋中所有物品的新x袋。这不是你想要的。正在为foreach您遍历包。

于 2012-06-09T13:18:26.040 回答