我可以在describe
ed脚本中使用import
吗?
我有一个脚本foo.pig
foo = ...;
describe foo;
当我pig -f bar.pig
和bar.pig
包含import 'foo.pig'
时,我得到了
ERROR org.apache.pig.Main - ERROR 1200: <file foo.pig, line 2, column 0> Syntax error, unexpected symbol at or near 'describe'
为什么?
答案 0 :(得分:5)
导入的脚本(有或没有宏)只能包含语句,但describe是由grunt解释的命令。请参阅PIG-2372。
答案 1 :(得分:0)
它不是预期的功能,但它是宏实现方式的副作用。猪 实际上有几个解析器。一个解析Pig Latin,另一个解析Grunt, 贝壳。 Grunt不知道Pig Latin,但它知道将它传递给Pig Latin解析器。 Pig Latin对Grunt一无所知。
描述,转储,解释和说明是在Grunt中实现的,而不是Pig Latin。宏是 在调用Grunt之前,由Pig Latin解析器解析(即替换并内联写入)。 由于Pig Latin解析器不理解Grunt命令,因此遇到它时会抱怨 他们在宏中。