2013-11-15 3 views
1

은 내가 import 에드 스크립트에서 describe를 사용할 수 수입 스크립트에 대해 설명? 돼지 :

나는 스크립트를 가지고 foo.pig

foo = ...; 
describe foo; 

내가 pig -f bar.pig을하고 bar.pigimport '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

은 당신이 작동하는지 확인하기 위해'describe' 문을 제거하려고 했습니까? –

+0

예, 설명없이 작동합니다. – sds

답변

4

가져온 스크립트는 툴툴 거리는 소리에 의해 해석 명령입니다. PIG-2372을 참조하십시오.

0

그것은 의도 된 기능은 아니지만 매크로가 구현되는 방식의 부작용입니다. 돼지 에는 실제로 두 개의 파서가 있습니다. 하나는 돼지 라틴어를 파싱하고, 다른 하나는 그룬 (Grunt)이 사용합니다. 셸. Grunt는 Pig Latin을 모르지만 Pig Latin 파서에 전달합니다. 돼지 라틴어는 그런트 (Grunt)를 아는 것이 아닙니다.

묘사, 덤프, 설명 및 예시는 돼지 라틴어가 아닌 그루트에서 구현됩니다. 매크로가 해결 있습니다 그런트를 호출하기 전에 돼지 라틴어 파서 (즉, 교체 및 인라인 기록). Pig Latin 파서는 Grunt 명령을 이해할 수 없기 때문에 매크로 내에 매크로가있을 때 불평합니다.