我是Pig脚本的新手。
我想编写一个过滤器udf而不管列的数据类型。
iput_data = load data '/emp.csv' using PigStorage(',') as (empid int, name chararray);
output = FILTER input_data by FilterUDF(empid);//data type is int
input_data1 = load data '/dept.csv' using pigStorage(',') as (deptid chararray, deptname chararray);
output1 = FILTER input_data by FilterUDF(deptid); //data type is chararray
现在,在PigUdf里面,如何识别输入参数的数据类型? (即input.get(0)的数据类型)
import org.apache.pig.FilterFunc;
import java.io.IOException;
import org.apache.pig.data.Tuple;
public class FilterUDF extends FilterFunc {
public Boolean exec(Tuple input) throws IOException {
//How to check data type inside UDF
}
}
答案 0 :(得分:0)
您可能希望使用getType()方法来查找元组的各个元素的数据类型。见link
像
这样的东西if (input.getType(0) == INTEGER) {
// Do something here
}
希望这有帮助。