【问题标题】:Getting error message Unexpected character ' ' when running LOAD command in PIG在 PIG 中运行 LOAD 命令时收到错误消息 Unexpected character ' '
【发布时间】:2015-03-05 16:53:58
【问题描述】:

我有一个文件存储在 HDFS 中的这个路径:/user/hdfs/countries (文件为逗号分隔格式)。

为了将这个 HDFS 数据导入 PIG,我在 PIG 中运行了以下命令:

test = load ‘/ user/hdfs/countries’ using PigStorage(',') as (id:int, Name:chararray, Language:chararray);

在哪里, ID:是HDFS文件中的主键列

Name 和 Language 是 HDFS 文件中的列名

运行上述 pig 命令时出现以下错误:

猪堆栈跟踪

ERROR 1200: <line 1, column 12>  Unexpected character ''

Failed to parse: <line 1, column 12>  Unexpected character ''
at    org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:243)
at     org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:179)
    at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1648)
    at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1621)
    at org.apache.pig.PigServer.registerQuery(PigServer.java:575)
    at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:1093)
    at  org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:501)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:198)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:173)
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
    at org.apache.pig.Main.run(Main.java:541)
    at org.apache.pig.Main.main(Main.java:156)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at     sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)

在 org.apache.hadoop.util.RunJar.main(RunJar.java:212)

有人可以帮我解决这个问题吗?我的命令不正确还是缺少任何 jar 文件? 提前谢谢!

【问题讨论】:

  • /和用户之间有空格吗?

标签: apache-pig


【解决方案1】:

它准确地告诉你问题出在哪里: 应该被替换为',这不是同一个字符。

另外,/ 后面的空格看起来很可疑。

【讨论】:

  • 我尝试删除 / 之后的空格。但什么都没有改变。
  • 我再次尝试并检查了符号,但没有结果:one = load '/user/hdfs/countries' using PigStorage(',') as (ID:int, Name:chararray, Language:字符数组);
  • 我认为是正确的。您是否 100% 确定您使用了正确的单引号字符?
猜你喜欢
  • 2020-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多