[
https://issues.apache.org/jira/browse/PIG-3350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14194321#comment-14194321
]
Eyal Allweil commented on PIG-3350:
-----------------------------------
If I try to run this in one script, it fails, saying that Pig expects a schema
file for the load of C. It seems like Pig doesn't know that there's a
dependency between the third and second lines, which makes sense, and the third
is reached before the second is fully complete.
If I split it into two scripts, the load of C succeeds and I get (what to me
seems like the expected error) - "incompatible types in Add Operator left hand
side:map :int right hand side:int".
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)