Hive | UDF

作者: icebreakeros | 来源:发表于2019-07-05 08:00 被阅读0次

UDF

HiveQL只有几十个内嵌的函数,可以通过编写UDF(User-Defined Function)来扩展功能
UDF类必须继承自org.apache.hadoop.hive.ql.exec.UDF类,并且实现evaluate方法

编码

# pom.xml
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-exec</artifactId>
    <version>${hive.version}</version>
</dependency>

# CaseConversionUdf.java
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

public class CaseConversionUdf extends UDF {

    public Text evaluate(Text text, String model) {
        if (model.equals('l')) {
            return new Text(text.toString().toLowerCase());
        } else {
            return new Text(text.toString().toUpperCase());
        }
    }
}

执行

hive
> add jar /opt/conversion.jar
> create temporary function cconversion 
> as "com.icebreakeros.boot.hive.CaseConversionUdf";
> select cconversion(name, 'l') from userinfo;
> drop temporary function cconversion;

相关文章

网友评论

    本文标题:Hive | UDF

    本文链接:https://www.haomeiwen.com/subject/leijhctx.html