Fatal error produced when malformed scalar types within complex type is 
converted to given type
-----------------------------------------------------------------------------------------------

                 Key: PIG-696
                 URL: https://issues.apache.org/jira/browse/PIG-696
             Project: Pig
          Issue Type: Bug
            Reporter: Thejas M Nair


Instead of fatal error, the failed conversions should result in null values.
Example -

grunt > cat cbag3.dat
{(asdf)}
{(2344)}
{(2344}
{(323423423423434)}
{(323423423423434L)}
{(asdff)}

grunt> A = load 'cbag3.dat' as (f1:bag{t:tuple(i:int)});  B = foreach A 
generate flatten(f1);  C = foreach B generate $0 + 1; dump C;
2009-03-03 14:25:19,604 [main] INFO  
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher 
- 0% complete
2009-03-03 14:25:44,628 [main] ERROR 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher 
- Map reduce job failed
2009-03-03 14:25:44,642 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 
2043: Unexpected error during execution.
Details at logfile: /d1/tejas/pig_1236118410343.log

tail  /d1/tejas/pig_1236118410343.log
  Caused by: java.lang.ClassCastException
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add.getNext(Add.java:110)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:260)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:198)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.runPipeline(PigMapBase.java:217)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.map(PigMapBase.java:208)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly$Map.map(PigMapOnly.java:65)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:47)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:227)


The 'conversion' of scalar types in complex types is happening in the 
physicaloperators, and not in the loaders. The expressions (such as Add in 
example) attempts to cast input to given type, and ClassCastException is thrown 
when conversion fails.




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to