【发布时间】:2025-11-21 11:15:01
【问题描述】:
我正在尝试创建一个接受元组并返回元组的 UDF。
A = LOAD 'file.txt' USING PigStorage(',') AS (f1:chararray);
DESCRIBE A
A: {f1: chararray}
B = FOREACH A GENERATE MyUDF(*);
DESCRIBE B
B: {(f1: chararray)}
但是,我希望 B 的形式为 {f1: chararray},即我不想要包含包含 chararray 的元组的包,而是包含包含 chararray 的元组的包。
我可以使用FLATTEN,但架构如下所示:
B: {null::f1: chararray} 但我需要它是{f1: chararray}
这是我的 UDF 的代码:
public class MyTest extends EvalFunc<Tuple> {
public MyTest() {
}
@Override
public Tuple exec(final Tuple input) throws IOException {
//apply some logic (not relevant)
return input;
}
@Override
public Schema outputSchema(final Schema input) {
try {
final Schema outputTupleSchema = input.clone();
return outputTupleSchema;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
}
有人知道如何实现吗?任何帮助将不胜感激。
【问题讨论】:
标签: apache-pig