我正试图在猪环境中运行这个commang。
grunt> A = LOAD inp;
但是我在日志文件中收到此错误: 猪堆痕迹:
ERROR 1200:输入'inp'不匹配,期待QUOTEDSTRING
无法解析:输入'inp'不匹配,需要QUOTEDSTRING 在org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:226) 在org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:168) 在org.apache.pig.PigServer $ Graph.validateQuery(PigServer.java:1565) 在org.apache.pig.PigServer $ Graph.registerQuery(PigServer.java:1538) 在org.apache.pig.PigServer.registerQuery(PigServer.java:540) 在org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:970) 在org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386) 在org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189) 在org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165) 在org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69) 在org.apache.pig.Main.run(Main.java:490) 在org.apache.pig.Main.main(Main.java:111) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:601) 在org.apache.hadoop.util.RunJar.main(RunJar.java:156)
咕噜> A = LOAD inp;
2012-10-26 12:18:34,627 [main] ERROR org.apache.pig.tools.grunt.Grunt - 错误1200:错误的输入'inp'期待QUOTEDSTRING
日志文件的详细信息:/usr/local/hadoop/pig_1351232517175.log
任何机构都能为我提供合适的解决方案吗?
答案 0 :(得分:2)
错误地使用了load的语法。查看此处提供的正确示例。 http://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#LOAD
假设我们有一个名为myfile.txt的数据文件。这些字段以制表符分隔。记录是换行符分隔的。
1 2 3
4 2 1
8 3 4
在此示例中,默认加载函数PigStorage从myfile.txt加载数据以形成关系A.两个LOAD语句是等效的。请注意,由于未指定架构,因此不会命名字段,并且所有字段都默认为bytearray类型。
A = LOAD 'myfile.txt';
A = LOAD 'myfile.txt' USING PigStorage('\t');
DUMP A;
(1,2,3)
(4,2,1)
(8,3,4)
的示例
我认为错误日志是自我解释的,它说 - 期待QUOTEDSTRING
答案 1 :(得分:1)
请将文件名放在单引号中以解决此问题。