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 Fix For: 0.3.0 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.