PIG를 한번 써볼려고 간단히 테스트 코드를 만들었는데
다음과 같은 에러를 만나다.
[main] ERROR org.apache.pig.tools.grunt.Grunt - org.apache.pig.tools.pigscript.parser.ParseException: Encountered " <PATH> "valid_field=foreach "" at line 7, column 1.
Was expecting one of:
<EOF>
"cat" ...
"fs" ...
"sh" ...
"cd" ...
"cp" ...
"copyFromLocal" ...
"copyToLocal" ...
"dump" ...
"describe" ...
"aliases" ...
"explain" ...
"help" ...
"kill" ...
"ls" ...
"mv" ...
"mkdir" ...
"pwd" ...
"quit" ...
"register" ...
"rm" ...
"rmf" ...
"set" ...
"illustrate" ...
"run" ...
"exec" ...
"scriptDone" ...
"" ...
<EOL> ...
";" ...
at org.apache.pig.tools.pigscript.parser.PigScriptParser.generateParseException(PigScriptParser.java:1058)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.handle_invalid_command(PigScriptParser.java:874)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:529)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:168)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:144)
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:90)
at org.apache.pig.Main.run(Main.java:500)
at org.apache.pig.Main.main(Main.java:107)
문제는 의외의 곳에 있었고 해결법 역시 간단하다.
연산자(=)에 앞뒤에 공백이 없는것이 문제로 보인다.
INVALID NOTATION :
valid_field=foreach fields generate a, b, c
VALID NOTATION :
valid_field = foreach fields generate a, b, c