pat chan created PIG-3350:
-----------------------------

             Summary: JsonLoader() is not working properly for maps
                 Key: PIG-3350
                 URL: https://issues.apache.org/jira/browse/PIG-3350
             Project: Pig
          Issue Type: Bug
          Components: data
    Affects Versions: 0.11.1
            Reporter: pat chan
            Priority: Minor
             Fix For: 0.11.1


The code that is loading map values is ignoring the load specification and 
always creating String objects.

You can reproduce the bug with the following steps:

input file:
[a#1]

script:
A = load 'input' as (a:map[int]);
B = store A into 'output' using JsonStorage();
C = load 'output' using JsonLoader() as (a:map[int]);
D = foreach C generate a+1;


you get the following error:
java.lang.ClassCastException: java.lang.String cannot be cast to 
java.lang.Number
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add.genericGetNext(Add.java:89)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.Add.getNext(Add.java:114)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:346)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:372)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:297)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:283)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:278)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at 
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:214)


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to