The following code and data will raise an exception.However, if I remove any 
of the four "store"s, the code will be fine.test.pigr = load 'test.txt' as (id: 
chararray, val: long);

t1 = filter r by val >= 12 and val < 20;
grpd = group t1 by val;
t1_cnt = foreach grpd generate group as name, COUNT(t1) as value;
t1_cnt = foreach t1_cnt generate (chararray)name, value;
grpd = group t1 all;
t1_cnt_total = foreach grpd generate 't1' as name, COUNT(t1) as value; 

t2 = filter r by val >= 20 and val < 30;
grpd = group t2 by val;
t2_cnt = foreach grpd generate group as name, COUNT(t2) as value;
--t2_cnt = foreach t2_cnt generate (chararray)name, value;
grpd = group t2 all;
t2_cnt_total = foreach grpd generate 't2' as name, COUNT(t2) as value;

store t1_cnt  into 'outx/3';
store t2_cnt  into 'outx/4';
store t1_cnt_total into 'outx/5';
store t2_cnt_total into 'outx/6';
andtest.txtc    12
will cause error:
Caused by: java.lang.ClassCastException: org.apache.pig.data.BinSedesTuple 
cannot be cast to java.lang.Long
at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast.getNextString(POCast.java:1167)
at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:343)
... 14 more
I don't know why the code need to cast a BinSedesTuple to Long.The same 
exception will be caused if I union the four results.jira link: 
https://issues.apache.org/jira/browse/PIG-4883

Reply via email to