标签:函数 自定义 jar udtf hive udaf public select
内置函数
show functions;
desc function extended f_name;
hive内置函数
1.1对1 (UDF) eg:
select lcase("ABc");==>abc
2.多对一(UDAF) max、 min、avg 、sum、count 、distinct eg:
select department,avg(salary) from dept;
3.一对多 (UDTF) eg:explode
select explode(split("a-b-c-d","-")); ==>
a
b
c
d
str_to_map(text,delimiter1,delimiter2)
select tstr_to_map("a:1,b:2,c:3",",",":")==>{"a":"1","b":"2","c":"3"}
select explode(str_to_map("a:1,b:2,c:3",",",":")); ==>
a 1
b 2
c 3
hive 自定义函数
hive 查看内置自定义函数: list jars
举例一个简单的自定义函数:
Package com.naixue.hive.udf
import java.util.HashMap;
import org.apache.hadoop.hive.ql.exec.UDF;
/**
* 自定义一对一实现的函数
*/
public class ToLowerCase extends UDF {
// 必须是public,并且evaluate方法可以重载
public String evaluate(String field) {
String result = field.toLowerCase();
return result;
}
// 根据传入的不同参数,可以执行对应的不同逻辑的方法
public int evaluate(int a, int b) {
return a + b;
}
}
上传jar包到hive环境即可试用
将导出的hiveudf.jar复制到hdfs上
hadoop fs -copyFromLocal hiveudf.jar hiveudf.jar
进入hive,添加jar,
add jar hdfs://localhost:9000/user/root/tolowercase .jar
create temporary function tolowercase as 'com.naixue.hive.udf.ToLowerCase';标签:函数,自定义,jar,udtf,hive,udaf,public,select 来源: https://blog.csdn.net/weixin_38629422/article/details/110727967
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。