hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Santhosh Srinivasan (JIRA)" <j...@apache.org>
Subject [jira] Commented: (PIG-851) Map type used as return type in UDFs not recognized at all times
Date Tue, 16 Jun 2009 18:47:07 GMT

    [ https://issues.apache.org/jira/browse/PIG-851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12720292#action_12720292
] 

Santhosh Srinivasan commented on PIG-851:
-----------------------------------------

Review comments:

1. The new sources test/org/apache/pig/test/utils/MyUDFReturnMap.java and test/org/apache/pig/test/TestUDFReturnMap.java
need to include the Apache license headers
2. The use of package sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl is resulting
in 3 compiler warnings and 1 javadoc warning. Can we use a different package?
3. The test case in TestUDFReturnMap runs the test in local mode (i.e., ExecType.LOCAL). Another
test for map reduce mode, ExecType.MAPREDUCE, should be added.

> 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
>
>         Attachments: Pig_815_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.


Mime
View raw message