我想将一个包元组传递给 UDF。
我有这个数据结构,其所有元素都是arg
两个包(x
和)的元组( y
):
data:{arg: (x: {(a: int,b: int,)},y: {(a: int,b: int)})}
然后,我写了一个UDF:
public class MyUDF extends EvalFunc<String> {
public String exec(Tuple input) throws IOException {
if(input == null || input.size() == 0)
return "empty";
try{
DataBag ref_regions = (DataBag)input.get(0);
return "OK";
}catch(Exception e){
System.err.println(e.getMessage());
return null;
}
}
}
我在 PigLatin 脚本中调用它,如下所示:
res = foreach data generate MyUDF(arg);
不幸的是,我收到了这个错误:
org.apache.pig.data.BinSedesTuple cannot be cast to org.apache.pig.data.DataBag
catch
这是由语句打印的。
你能帮我解决这个问题吗?