我已经通过实现LoadFunc类编写了一个自定义加载器函数。
现在我想在getNext()方法中返回多行作为输入。
我使用了像
这样的DataBagdatabag.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
请您指导如何继续,如果方法不正确,那么如何解决这个问题。
谢谢,欢呼:))
答案 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;