Ich versuche, ein Filter UDF schreiben, die Eingabe als Tuple nehmen wird, und Tupel zurückgeben, aber wenn ich die Funktion in Gruntt Shell DEFINE bekomme ich die Fehlermeldung msg als fehlgeschlagen zu analysieren, wo ich es tue hier falschPig Fehler: Parsing Abfrage fehlgeschlagen
REGISTER /home/filterUDF.jar;
DEFINE filDist 'FilterDistrictUdf/FilterDistrict'
package FilterDistrictUdf;
import java.io.IOException;
import org.apache.pig.FilterFunc;
import org.apache.pig.data.Tuple;
public class FilterDistrict extends FilterFunc{
@Override
public Boolean exec(Tuple input) throws IOException {
String line = input.toString();
String[] columns = line.split(",");
Double bplObjective = Double.parseDouble(columns[2]);
Double bplPerformance = Double.parseDouble(columns[10]);
//Double bplObjective = (Double)input.get(2);
//Double bplPerformance = (Double)input.get(10);
//BigInteger mul = new BigInteger("80");
//BigInteger div = new BigInteger("100");
if(bplPerformance >= ((bplObjective* 80)/100))
return true;
else
return false;
}
}
Fehler:
ERROR 1200: <line 40, column 15> Syntax error, unexpected symbol at or
near ''FilterDistrictUdf/FilterDistrict''
Failed to parse: <line 40, column 15> Syntax error, unexpected symbol at
or near ''FilterDistrictUdf/FilterDistrict''
at
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:244)
at
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:182)
at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1707)
at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1680)
at org.apache.pig.PigServer.registerQuery(PigServer.java:623)
at
org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:1063)
at
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse (PigScriptParser.java:501) bei org.apache.pig.tools.grunt.GruntParser.parseStopOnError (GruntParser.java:230) bei org.apache.pig.tools.grunt.GruntParser.parseStopOnError (GruntParser.java:205) bei org.apache. pig.tools.grunt.Grunt.run (Grunt.java:66) bei org.apache.pig.Main.run (Main.java:558) bei org.apache.pig.Main.main (Main.java: 170) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMeth odAccessorImpl.ja va: 43) bei java.lang.reflect.Method.invoke (Method.java:497) bei org.apache.hadoop.util.RunJar.main (RunJar.java:212)