如何检查猪 UDF 中的数据类型

Posted

技术标签:

【中文标题】如何检查猪 UDF 中的数据类型【英文标题】:How to check data type inside pig UDF 【发布时间】:2016-01-02 19:25:05 【问题描述】:

我是 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
    

【问题讨论】:

【参考方案1】:

您可能希望使用 getType() 方法来查找元组中各个元素的数据类型。看到这个link

类似

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

希望这会有所帮助。

【讨论】:

以上是关于如何检查猪 UDF 中的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

如何从复杂的猪数据类型中提取简单的猪数据类型

是否可以在 pig java udf 中使用 pig 内置函数

如何验证pig中的数据类型?

猪铸造/数据类型

如何检查文件中的数据类型

如何为数据框中的复杂列创建包含数组(案例类)的udf