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