猪宏不带'sh'在体内

Pig macro does not take 'sh' in body

在 Pig 中,这个简单的宏不起作用:

define simple ()
returns void {
sh echo 'Hello World'
};

simple();

它给出了这个错误:

2015-04-06 09:56:00,733 [main] ERROR org.apache.pig.Main - ERROR 1200: <line 10> Failed to parse macro 'simple'. Reason: <line 2, column 0>  Syntax error, unexpected symbol at or near 'sh'
macro content: 
sh echo 'Hello World'

这是为什么?如果我只是将 "sh echo 'Hello World'" 单独放在一行上,就可以了。如果我用数据集和 return 值等制作更复杂的宏,它就可以正常工作。但是尝试执行 sh 失败了。

来自 Apache Pig 文档:

Macros cannot contain Grunt shell commands.