Apache pig ApachePig:处理双打时出错2103
我有一个亲戚,我们会叫a,看起来像这样Apache pig ApachePig:处理双打时出错2103,apache-pig,Apache Pig,我有一个亲戚,我们会叫a,看起来像这样 -------------------------------- id page item paid -------------------------------- 1 pdp A 1 pdp B 1 chekcout B 9.99 2 pdp C 2 checkout C 100.00 我正在尝试按id和页面分组,
--------------------------------
id page item paid
--------------------------------
1 pdp A
1 pdp B
1 chekcout B 9.99
2 pdp C
2 checkout C 100.00
我正在尝试按id和页面分组,然后对付费列求和,使用
grpd = GROUP A BY (id, page);
return = FOREACH grpd GENERATE FLATTEN(group), SUM(A.paid) AS total_paid:float;
该操作正在运行,但当I说明
或转储
时,Pig抛出错误
错误2103:在双打上工作时出现问题
我假设Pig有问题,因为页面为pdp的SUM()。我试着用三元运算符,比如
B = FOREACH A GENERATE (price IS NULL ? 0 : price);
用零填充NULL
,但这似乎不起作用。您的问题不在于空值
将自动忽略它们
我的猜测是,您的问题在于加载数据的方式,您希望结果为float。加载数据时是否指定了数据类型
如果尚未指定数据类型,Pig将自动使用double as。然后SUM也将使用双精度数据类型和结果
DUMP和Diagram可能无法处理从double到long的数据类型转换
加载数据时,请尝试指定“以浮动方式支付”的数据类型,或将“支付总额”的数据类型更改为“双倍” 我面临着同样的问题“长时间工作的问题”。我还更改了加载数据的方式,仍然面临相同的错误:-(