pig:用进口脚本描述

时间:2013-11-15 19:26:34

标签: apache-pig

我可以在describe ed脚本中使用import吗?

我有一个脚本foo.pig

foo = ...;
describe foo;

当我pig -f bar.pigbar.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'

为什么?

2 个答案:

答案 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命令,因此遇到它时会抱怨 他们在宏中。