猪查询给出错误(位置参数分组依据)

Pig query giving error (positional parameter group by)

如果你能解释我做错了什么,我将不胜感激。

脚本在大部分情况下都有效,但是当我使用分组依据和转储结果时,我收到错误提示 other_vertex_failure;

示例数据

1,苹果,5.5
2,橙色,2.5
2,橙色,4.5
3,猕猴桃,1.5
3,猕猴桃,3.5
4,香蕉,4.0
4,香蕉,6.0

A = LOAD '/user/pig/apple.csv' USING PigStorage(','); **--this works**   
B = FOREACH A GENERATE [=10=] as ids:int,  as fruit:chararray,    
 as quan:int; **--this works**   
C = GROUP B BY ids; **--this works gives no error**   

但是当我转储 C 时;它会抛出错误。

在 pig 中使用带有位置参数的名称是个坏主意吗?

您可以将 alias 分配给 LOAD 本身的字段。

由于您还没有完成,字段默认输入 bytearray。当它尝试将 bytearray 转换为 int 时,它会抛出 ClassCastException.

A = LOAD '/user/pig/apple.csv' USING PigStorage(',') as (ids:int, fruit:chararray, quan:float);
C = GROUP A BY ids;
dump C;

(1,{(1,Apple,5.5)})
(2,{(2,Orange,4.5),(2,Orange,2.5)})
(3,{(3,Kiwi,3.5),(3,Kiwi,1.5)})
(4,{(4,Banana,6.0),(4,Banana,4.0)})