在猪中使用ASSERT时出错

时间:2016-04-23 21:20:49

标签: apache-pig

我试图在Pig中使用ASSERT运算符,但面临问题。

A = LOAD 'data' AS (a0:int,a1:int,a2:int);
DUMP A;

(1,2,3)
(4,2,1)
(8,3,4)
(4,3,3)
(7,2,5)    
(8,4,3)

ASSERT A by a0 > 0 'a0 should be greater than 0';

以下是日志:

  

错误1000:解析期间出错。遇到了#34; " ASSERT   ""在第3行,第1列。`期待以下之一:

     

     

"猫" ...

     

"清除" ...

     

.... org.apache.pig.tools.pigscript.parser.ParseException:遇到" " ASSERT""在第3栏第1栏。

请帮助

3 个答案:

答案 0 :(得分:1)

ASSERT运算符关键字自0.12.0开发。但是,它没有用,并用Patch PIG-3367.patch修复。虽然,它仍然声称ASSERT从0.12.0支持,但补丁仅发布到0.12.1和0.13.0。所以,如果你想使用ASSERT,请更新你的猪。

https://issues.apache.org/jira/browse/PIG-3670

答案 1 :(得分:0)

如果使用Pig 0.12:

,请设置逗号
ASSERT A by a0 > 0, 'a0 should be greater than 0';

您使用的是哪个猪版?

答案 2 :(得分:0)

支持ASSERT运算符Pig 0.12发布。确保使用的是正确的版本 进行语法更正。在条件 a0> 0

之后添加“逗号”
A = LOAD 'data' AS (a0:int,a1:int,a2:int);
DUMP A;

(1,2,3)
(4,2,1)
(8,3,4)
(4,3,3)
(7,2,5)    
(8,4,3)

ASSERT A by a0 > 0, 'a0 should be greater than 0';