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

Thejas M Nair commented on PIG-999:
-----------------------------------

{code}
l = load 'st_attr2.bin' using BinStorage();
f = foreach l generate $1, $4#'origin';  --   $4#'origin is stored as chararray
o = order f by $2;
dump o; 
{code}

It results in map-reduce failure with error -

java.lang.ClassCastException: org.apache.pig.impl.io.NullableText cannot be 
cast to
org.apache.pig.impl.io.NullableBytesWritable
        at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigBytesRawComparator.compare(PigBytesRawComparator.java:94)
        at java.util.Arrays.binarySearch0(Arrays.java:2105)
        at java.util.Arrays.binarySearch(Arrays.java:2043)
        at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.WeightedRangePartitioner.getPartition(WeightedRangePartitioner.java:64)
        at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.WeightedRangePartitioner.getPartition(WeightedRangePartitioner.java:53)
        at 
org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:466)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduce$Map.collect(PigMapReduce.java:108)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.runPipeline(PigMapBase.java:251)
        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:50)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
        at org.apache.hadoop.mapred.Child.main(Child.java:170)


> sorting on map-value fails if map-value is not of bytearray type
> ----------------------------------------------------------------
>
>                 Key: PIG-999
>                 URL: https://issues.apache.org/jira/browse/PIG-999
>             Project: Pig
>          Issue Type: Sub-task
>            Reporter: Thejas M Nair
>
> When query execution plan is created by pig, it assumes the type to be 
> bytearray because there is no schema information associated with map fields.
> But at run time, the loader might return the actual type. This results in a 
> ClassCastException.
> This issue points to the larger issue of the way pig is handling types for 
> map-value. 
> This issue should be fixed in the context of revisiting the frontend logic 
> and pig-latin semantics.
> This is related to PIG-880 . The patch in PIG-880 changed PigStorage to 
> always return bytearray for map values to work around this, but other loaders 
> like BinStorage can return the actual type causing this issue.

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