pig:在导入的脚本中描述

3zwtqj6y  于 2021-06-25  发布在  Pig
关注(0)|答案(2)|浏览(212)

我能用吗 describe 在一个 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'

为什么?
arknldoa

arknldoa1#

这不是一个预期的特性,但它是宏实现方式的副作用。pig实际上有几个解析器。一个解析pig拉丁语,另一个由shell grunt使用。咕噜不懂Pig拉丁语,但它知道把它传给Pig拉丁语解析器。拉丁Pig对咕噜声一无所知。
描述、转储、解释和说明都是用咕噜实现的,而不是用拉丁语。在调用grunt之前,宏由pig拉丁语解析器解析(即替换并内联编写)。因为pig拉丁语解析器不理解grunt命令,所以当它在宏中遇到它们时,它会抱怨。

jaxagkaj

jaxagkaj2#

导入的脚本(是否包含宏)只能包含语句,但descripe是由grunt解释的命令。见pig-2372。

相关问题