[ https://issues.apache.org/jira/browse/PIG-851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jeff Zhang updated PIG-851: --------------------------- Status: Patch Available (was: Open) > Map type used as return type in UDFs not recognized at all times > ---------------------------------------------------------------- > > Key: PIG-851 > URL: https://issues.apache.org/jira/browse/PIG-851 > Project: Pig > Issue Type: Bug > Components: impl > Affects Versions: 0.3.0 > Reporter: Santhosh Srinivasan > Assignee: Jeff Zhang > Fix For: 0.4.0 > > Attachments: Pig_851_patch.txt > > > When an UDF returns a map and the outputSchema method is not overridden, Pig > does not figure out the data type. As a result, the type is set to unknown > resulting in run time failure. An example script and UDF follow > {code} > public class mapUDF extends EvalFunc<Map<Object, Object>> { > @Override > public Map<Object, Object> exec(Tuple input) throws IOException { > return new HashMap<Object, Object>(); > } > //Note that the outputSchema method is commented out > /* > @Override > public Schema outputSchema(Schema input) { > try { > return new Schema(new Schema.FieldSchema(null, null, > DataType.MAP)); > } catch (FrontendException e) { > return null; > } > } > */ > {code} > {code} > grunt> a = load 'student_tab.data'; > grunt> b = foreach a generate EXPLODE(1); > grunt> describe b; > b: {Unknown} > grunt> dump b; > 2009-06-15 17:59:01,776 [main] INFO > org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher > - Failed! > 2009-06-15 17:59:01,781 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR > 2080: Foreach currently does not handle type Unknown > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.