DataWorks udad中的Writable.readField()怎么写?
如果您希望在 UDTF 中传入两个参数,您可以使用 Resolve('string,string-string') 声明。在代码中,可以通过 Writable.readFields() 方法读取传入的两个参数:
private Text param1;
private Text param2;
public MyUDTF() {
param1 = new Text();
param2 = new Text();
}
public void process(Object[] args) throws UDFException {
// ...
}
public void close() throws UDFException {
// ...
}
public void configure(Map arg2) {
// ...
}
public void setInput(Object[] args) {
// ...
}
public Object[] evaluate(Object[] args) throws UDFException {
// ...
return new Object[] { ... };
}
public void readFields(DataInput in) throws IOException {
param1.readFields(in);
param2.readFields(in);
}
public void write(DataOutput out) throws IOException {
param1.write(out);
param2.write(out);
}
}
您可以在 readFields 方法中读取两个参数,并在其他方法中使用它们。您需要将每个参数读入 Text 对象并将其写入 DataOutput 对象。
赞0
踩0