1

我正在尝试用一些预先计算的值替换缺失的值。

所以我在这里发布了问题并遵循了建议,这是代码片段

input = LOAD 'data.txt' USING PigStorage(',') AS
(
id1:double  ,  id21:double  );

gin = foreach input generate
        id1 IS NULL ? 2 : id1,
        id2 IS NULL ? 4 : id2;

但是我收到错误不匹配的输入“IS”,期望 SEMI_COLON?

4

1 回答 1

3

尝试在 bincond 中添加括号。以下内容适合我:

内容input

0.9,1.11
,0.3
10.3,

脚本:

inp = LOAD 'input' USING PigStorage(',') AS (id1:double, id2:double );

gin = foreach inp generate
    ((id1 IS NULL) ? 2 : id1),
    ((id2 IS NULL) ? 4 : id2);

DUMP gin;

输出:

(0.9,1.11)
(2.0,0.3)
(10.3,4.0)
于 2012-11-15T16:43:23.210 回答