[ 
https://issues.apache.org/jira/browse/PIG-942?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pradeep Kamath updated PIG-942:
-------------------------------

    Attachment: PIG-942.patch

Attached patch which addresses the issue by introducing implicit cast to Map if 
the input to Map lookup is not a map. As a part of this patch also changed 
LOCast.getFieldSchema() to set lineage information (set its parent to the 
expression on which it is operating). The latter change was needed to fix unit 
tests which were failing due to the first change.

> Maps are not implicitly casted
> ------------------------------
>
>                 Key: PIG-942
>                 URL: https://issues.apache.org/jira/browse/PIG-942
>             Project: Pig
>          Issue Type: Bug
>            Reporter: Sriranjan Manjunath
>         Attachments: PIG-942.patch
>
>
> A = load 'foo' as (m) throws the following exception when foo has maps.
> java.lang.ClassCastException: org.apache.pig.data.DataByteArray cannot be 
> cast to java.util.Map
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp.getNext(POMapLookUp.java:98)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POMapLookUp.getNext(POMapLookUp.java:115)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast.getNext(POCast.java:612)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:278)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:204)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:231)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange.getNext(POLocalRearrange.java:240)
>         at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.runPipeline(PigMapBase.java:249)
>         at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.map(PigMapBase.java:240)
>         at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduce$Map.map(PigMapReduce.java:93)
>         at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:47)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:227)
>         at 
> org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2198)
> The same works if I explicitly cast m to a map: A = load 'foo' as (m:[])

-- 
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