Hive 函数简介

举报
kala_1314 发表于 2019/01/18 18:26:32 2019/01/18
【摘要】 Hive 函数 一、系统自带的函数 1.查看系统自带的函数有哪些: show functions; 2.显示自带函数的用法: desc function 函数名; 3.详细显示自带函数: desc function extended 函数名 4.调用函数 只需要在hive里面调用函数名并根据函数传入适当的参数就可以了,示例...

Hive 函数 


一、系统自带的函数

1.查看系统自带的函数有哪些:

show functions;

2.显示自带函数的用法:

desc function 函数名;

3.详细显示自带函数:

desc function extended 函数名

        

        4.调用函数

                只需要在hive里面调用函数名并根据函数传入适当的参数就可以了,示例:

                    select concat(column1,column2) as x from table;


二、自定义函数


hive 虽然自带了一些函数,但是通过自带的函数是无法满足需求的,这个时候就需要自定义了。

自定义函数的分类:

UDF 一进一出、UDAF 多进一出(类似于count、min、max等) 和一进多出(例如 lateral view explore)

编程步骤:

1.继承org.apache.hadoop.hive.ql.UDF

2.实现evaluate() 函数

3.在hive命令窗口创建函数

1) 先添加打包的jar: add jar jar包名

2) 创建function : create [temporary] function 函数名 as class_name

注意: UDF中的evaluate()函数的参数和返回值类型只能是hive 可以序列化的数据类型,且必须要有返回值,可以返回null。


三、超级简单的自定义函数的示例


1.创建一个类,将字符串转为小写

package com.kala.hive

import org.apache.hadoop.ql.exec.UDF 

public class Lower extends UDF{

    

public String evaluate(final Sring s){

if(s == null){

return null;

}

return s.toString().toLowerCase();

}

}

2.打成jar 上传到/hive

3.添加jar

add jar /hive/LowerUDF.jar

4.创建函数

create function fun_test as "com.kala.hive.Lower"


        5.可以在hive里使用自定义函数了



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。