在pig中使用assert时出错

2jcobegt  于 2021-06-21  发布在  Pig
关注(0)|答案(3)|浏览(445)

我尝试在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:分析期间出错。在第3行第1列遇到“assert”。应为以下之一:
“猫”。。。
“清除”。。。
.... org.apache.pig.tools.pigscript.parser.parseexception:在第3行第1列遇到“assert”。
请帮忙

2ledvvac

2ledvvac1#

如果使用pig 0.12,请使用逗号:

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

你用的是哪种Pig?

djp7away

djp7away2#

assert运算符在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';
bogh5gae

bogh5gae3#

assert操作符关键字从0.12.0开始开发。但是,它不起作用,用补丁pig-3367.patch修复。尽管如此,它仍然声称assert是从0.12.0支持的,但是这个补丁只发布到了0.12.1和0.13.0。所以,如果你想使用assert,就更新你的pig。
https://issues.apache.org/jira/browse/pig-3670

相关问题