J'essaye d'écrire un UDF de filtre, qui prendra l'entrée comme Tuple, et retournerai tuple, mais quand je DÉFINIE la fonction dans le shell de Gruntt, j'obtiens l'erreur msg comme échouée à analyser, où je fais mal iciErreur de Pig: Échec d'analyse de la requête
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;
}
}
erreur:
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) à org.apache.pig.tools.grunt.GruntParser.parseStopOnError (GruntParser.java:230) à org.apache.pig.tools.grunt.GruntParser.parseStopOnError (GruntParser.java:205) à org.apache. pig.tools.grunt.Grunt.run (Grunt.java:66) à org.apache.pig.Main.run (Main.java:558) à org.apache.pig.Main.main (Main.java: 170) à sun.reflect.NativeMethodAccessorImpl.invoke0 (Méthode natif) à
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) à
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMeth odAccessorImpl.ja va: 43) à java.lang.reflect.Method.invoke (Method.java:497) à org.apache.hadoop.util.RunJar.main (RunJar.java:212)