2016-04-23 50 views
1

我试图在猪中使用ASSERT操作符,但遇到问题。在猪中使用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:解析过程中的错误。遇到““认定 ”“ 第3行,列1.`期待之一:

”猫“ ......

”清晰“ ......

.. .. org.apache.pig.tools.pigscript.parser.ParseException:遇到““认定 ”“ 第3行,第1列

请帮助

+0

ASSERT运营商都支持生猪0.12版本起,您使用的..哪个版本? –

+0

@Nishu Tayal - 猪版是0.12 – Sumit

回答

0

如果使用猪0.12放置一个逗号试试这个:

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

哪个版本的猪猪您使用的是?

0

ASSERT运算符支持Pig 0.12以上版本。确保你使用的是正确的版本。
进行语法修正。添加 '逗号' 的条件后A0自0.12.0> 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'; 
+0

谢谢,但不幸的是它不工作。我有猪0.12 – Sumit

1

ASSERT运营商的关键字已经研制成功。然而,它没有工作,并修补PIG-3367.patch。虽然它仍然声称ASSERT支持0.12.0,但补丁只发布到0.12.1和0.13.0。所以,如果你想使用ASSERT,更新你的猪。

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