public class Upper extends EvalFunc<Tuple> {
public Schema outputSchema(Schema schema) {
if(schema.size() < 2) {
log.info("--------------------Expecting two inputs.------------------------");
throw new RuntimeException("Expecting at least two inputs.");
}
.....
}
}
当我在我的代码中使用此EvalFunc时,如下所示
gen = foreach data generate upper(*);
猪正在抛出异常
2016-12-08 14:57:58,743 [main] ERROR org.apache.pig.PigServer - exception during parsing: Error during parsing. NULL Schema
Failed to parse: NULL Schema
at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:201)
at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1735)
at org.apache.pig.PigServer$Graph.access$000(PigServer.java:1443)
at org.apache.pig.PigServer.parseAndBuild(PigServer.java:387)
at org.apache.pig.PigServer.executeBatch(PigServer.java:412)
at org.apache.pig.PigServer.executeBatch(PigServer.java:398)
at org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:171)
at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:749)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:376)
我不确定,当我传递整行时,猪是如何将此视为空架构的。
答案 0 :(得分:0)
我不认为问题在于eval函数本身。从堆栈跟踪中可以看出,你的功能甚至都没有被调用。你能提供完整的猪脚本吗?我很确定问题出在上面