Как проверить тип данных внутри свиной UDF

Я новичок в написании сценариев 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
    }
}

person gauravbhide    schedule 02.01.2016    source источник


Ответы (1)


Вы можете использовать метод getType() для определения типа данных отдельных элементов кортежа. См. эту ссылку.

Что-то вроде

if (input.getType(0) == INTEGER) {
    // Do something here
}

Надеюсь это поможет.

person vmachan    schedule 02.01.2016