0

我正在使用以下命令加载文件,当我尝试转储或说明加载的数据时,它失败并出现以下错误。我检查了数据的完整性,每行包含正确数量的分隔符,但是当该字段为空时,分隔符紧随其后,我尝试加载下面的单个示例行。这没用。

hs_2_inr = LOAD 'hs_2_inr.dat' USING PigStorage('^') as ( year:chararray, country:chararray, s_no:chararray, hs_8:chararray, hs_8_desc:chararray, prevyr_inr:chararray, curyr_inr:chararray, growth:chararray, dummy:chararray);

这是示例数据

1997^BOTSWANA^1.^10063001^*RICE PARBOILED^^2.43^^

下面是例外

2013-06-30 21:02:23,015 [main] ERROR org.apache.pig.pen.AugmentBaseDataVisitor - No (valid) input data found!
java.lang.RuntimeException: No (valid) input data found!
    at org.apache.pig.pen.AugmentBaseDataVisitor.visit(AugmentBaseDataVisitor.java:583)
    at org.apache.pig.newplan.logical.relational.LOLoad.accept(LOLoad.java:229)
    at org.apache.pig.pen.util.PreOrderDepthFirstWalker.depthFirst(PreOrderDepthFirstWalker.java:82)
    at org.apache.pig.pen.util.PreOrderDepthFirstWalker.depthFirst(PreOrderDepthFirstWalker.java:84)
    at org.apache.pig.pen.util.PreOrderDepthFirstWalker.walk(PreOrderDepthFirstWalker.java:66)
    at org.apache.pig.newplan.PlanVisitor.visit(PlanVisitor.java:52)
    at org.apache.pig.pen.ExampleGenerator.getExamples(ExampleGenerator.java:180)
    at org.apache.pig.PigServer.getExamples(PigServer.java:1180)
    at org.apache.pig.tools.grunt.GruntParser.processIllustrate(GruntParser.java:739)
    at org.apache.pig.tools.pigscript.parser.PigScriptParser.Illustrate(PigScriptParser.java:626)
    at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:323)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170)
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
    at org.apache.pig.Main.run(Main.java:538)
    at org.apache.pig.Main.main(Main.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
2013-06-30 21:02:23,016 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2997: Encountered IOException. Exception 

那么如何在猪中加载带有空字段的文件?

4

1 回答 1

3

您的代码工作正常。正如您在评论中提到的,ILLUSTRATE是您的问题。根据文档ILLUSTRATE有一段时间没有维护。不要依赖它。无论如何,您不应该在任何非诊断代码中需要它。改为使用DESCRIBE

较新的 Pig 版本中,警告ILLUSTRATE似乎已经消失,所以它可能再次安全,但我仍然会更加依赖DESCRIBE以避免潜在问题的来源。在我正在使用的 Pig 0.10 中,ILLUSTRATE仍然给了我您收到的相同错误。

于 2013-07-01T23:24:48.323 回答