-- The new load udf, works fine. The data are stored directly in the bags INTERMEDIATE_BAG_0 = load 'hbase://myTable1' using myUDFPackage.HBaseLoadBagUDF('mycf', '-caching 10','rowkey1') as (output0:chararray); INTERMEDIATE_BAG_1 = load 'hbase://myTable2' using myUDFPackage.HBaseLoadBagUDF('mycf', '-caching 10','rowkey2') as (output1:chararray); INTERMEDIATE_BAG_2 = load 'hbase://myTable3' using myUDFPackage.HBaseLoadBagUDF('mycf', '-caching 10','rowkey3') as (output1_2:chararray, output2_2:chararray); -- this merge join works fine INTERMEDIATE_BAG_3 = JOIN INTERMEDIATE_BAG_0 BY $0, INTERMEDIATE_BAG_1 BY $0 USING 'merge'; INTERMEDIATE_BAG_3 = Foreach INTERMEDIATE_BAG_3 GENERATE $0; -- at this point I got the error: ERROR 1103: Merge join/Cogroup only supports Filter, Foreach, Ascending Sort, or Load as its predecessors. Found INTERMEDIATE_BAG_4 = JOIN INTERMEDIATE_BAG_3 BY $0, INTERMEDIATE_BAG_2 BY $0 USING 'merge'; INTERMEDIATE_BAG_4 = Foreach INTERMEDIATE_BAG_4 GENERATE $1, $2;