如何在Pig中使用自定义加载器函数返回多个元组

时间:2015-10-14 08:36:14

标签: hadoop mapreduce apache-pig

我已经通过实现LoadFunc类编写了一个自定义加载器函数。

现在我想在getNext()方法中返回多行作为输入。

我使用了像

这样的DataBag
databag.add(tuple1);
databag.add(tuple2);

然后

tuple3.set(0,databag);

并在getNext()方法中返回tuple3。

但我收到了错误

org.apache.pig.backend.executionengine.ExecException: ERROR 1071: Cannot convert a bag to a String

请您指导如何继续,如果方法不正确,那么如何解决这个问题。

谢谢,欢呼:))

1 个答案:

答案 0 :(得分:0)

如果你想要一个包含多个元组的包。那么这将是一种生成它的方法。首先生成(设置)元组,然后将这些元组添加到数据库。

BagFactory bf=BagFactory.getInstance();
DataBag output=bf.newDefaultBag();
...
TupleFactory tp=TupleFactory.getInstance();
Tuple t1=tp.newTuple(2);
....
t1.set(0,key_out);
t1.set(1,value_out);
output.add(t1);
return output;