UDF's can only be given String arguments, period. So you can pass it a boolean in String form and parse it.
2012/11/8 meghana narasimhan <[email protected]> > Hi All, > > Can I pass in a boolean value to Pig UDF constructor with Pig 0.9.2? > > I have a constructor : > > public GenStartEndDate(boolean mtdNoGlob) { > > this.mtdNoGlob = mtdNoGlob; > > } > > > I am instantiating it in my Pig script : > > > DEFINE START_END_DATE com.demandmedia.dig.udf.GenStartEndDate(false); > > > I get : > > > org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error > during parsing. <line 4, column 62> mismatched input 'false' expecting > RIGHT_PAREN > > at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1641) > > at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1584) > > at org.apache.pig.PigServer.registerQuery(PigServer.java:584) > > at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:967) > > at org.apache.pig.pigunit.pig.GruntParser.processPig(GruntParser.java:61) > > at > > org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386) > > at > > org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189) > > at org.apache.pig.pigunit.pig.PigServer.registerScript(PigServer.java:53) > > at org.apache.pig.pigunit.PigTest.registerScript(PigTest.java:160) > > at org.apache.pig.pigunit.PigTest.runScript(PigTest.java:170) > > at > > com.demandmedia.dig.incite.TestSiteUrlDaily.testBasic(TestSiteUrlDaily.java:84) > > Caused by: Failed to parse: <line 4, column 62> mismatched input 'false' > expecting RIGHT_PAREN > > at > org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:222) > > at > org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:164) > > at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1633) > > ... 43 more > > > I also tried : > > DEFINE START_END_DATE com.demandmedia.dig.udf.GenStartEndDate('false'); > > > with : > > > <line 138, column 10> Failed to generate logical plan. Nested exception: > java.lang.RuntimeException: could not instantiate > 'com.demandmedia.dig.udf.GenStartEndDate' with arguments '[false]' > > at > > org.apache.pig.parser.LogicalPlanBuilder.buildUDF(LogicalPlanBuilder.java:912) > > at > > org.apache.pig.parser.LogicalPlanGenerator.func_eval(LogicalPlanGenerator.java:7047) > > at > > org.apache.pig.parser.LogicalPlanGenerator.projectable_expr(LogicalPlanGenerator.java:8583) > > at > > org.apache.pig.parser.LogicalPlanGenerator.var_expr(LogicalPlanGenerator.java:8358) > > at > > org.apache.pig.parser.LogicalPlanGenerator.expr(LogicalPlanGenerator.java:7711) > > > What am I doing wrong? > > - Meg >
