hive函数

内置函数

1)显示所有内置函数列表

show functions;(默认有271个)

2)查看函数的基本使用

例如:

desc function funname;

desc function max;

3)查看函数的详细使用教程

例如:

desc function extended funname;

常用的内置函数:

数值操作

max min sum avg ------UDAF

ceil:向上取整

ceil(x) 大于等于参数的第一个整数

floor:向下取整

floor(x) 小于等于参数的第一个整数

round:四舍五入的

round(x[,d])参数1:需要四舍五入的数 参数2:小数位数

例:round(24.35456,2);

rand:求随机数 0-1

rand([seed])参数:随机数种子 种子一样 随机数固定,一般无参数

字符串操作

hive中的字符串 下标1开始

字符串 从右向左标记 -1开始

1)字符串切分

split:split(str,regex)参数1:要切分的字符串 参数2:分隔符

substr:substr(str,pos[,len])参数1:字符串 参数2:切分的位置 参数 3:截取长度

2)字符串查找 instr

instr(str,substr) 参数1:原始字符串 参数2:需要查找的子字符串

返回:子字符串在原始字符串中第一次出现的位置 不存在返回0

例:select instr(“dgdfg”,“df”);

3)字符串的大小写转换

ucase 大写

lcase 小写

upper 大写

lower 小写

ucase(str)

4)字符串去前后空格

trim(str) 去前后空格

ltrim(str) 去前空格

rtrim(str) 去后空格

5)字符串拼接

concat(str1,str2,…)将参数拼接为一个字符串

concat_ws(分隔符,str1,str2…)按照一定的分割符 拼接字符串

日期函数

1)获取当前系统时间戳

current_timestamp()

select current_timestamp(); 日期时间

current_date()

select current_date();获取当前系统法人日期

2)时间戳—日期

from_unixtime(unix_time,format) 参数1:时间戳 参数2:日期格式

例:

select from_unixtime(123467453,“yyyy-MM-dd hh:mm:ss”);

3)日期—时间戳

unix_timestamp(date[, pattern]) 参数1 日志 参数2 参数1的表达式

例:select unix_timestamp(“2019-5-20 17:27:56”,“yyyy-MM-dd hh:mm:ss”);

4)时间提取

year 年

month

day

hour

minute

second

select year(“2019-2-6”);

hive函数补充

if(判断,返回值1,返回值2)udf

nvl(需要判断的字段,参数null的返回值)udf

处理null值

getLong getInt getClass(参数,默认返回值)

explode(array|map) udtf

炸裂

数组:将数组的每一个元素 炸裂一行 数组有几个元素 一行 ==》 几行

map集合:将map集合的每一个元素 炸裂一行 两列

单独使用:参数

普通字段一个查询

id int info array。。。

select

id,lv.*

from test_array lateral view explode(work_add) lv;

case when

语法规则

1.语法一(类似于java中的switch-case 只能进行等值)

case 需要判断的字段

when 值1 then 返回值1

when 值2 then 返回值2

else 返回值3 end

例:stu_external中男返回1 女返回0

select sid,name,sex,case sex when “男” then 1 else 0 end sexid from stu_external;

2.语法二

case when

条件1 then 返回值1

条件2 then 返回值2

else 返回值 end

例:年龄小于18 0 ,18-20 1,>20 2

select name,age,case when age<18 then 0 when age>=18 and age<20 then 1 when age>-20 then 2 end from stu_external;

自定义函数

(1.在eclipse中建一个java项目,extends UDF类,写方法,打架包(项目上右键–》Export–》JAR file)–》导入虚拟机(cd jars–》alt+p)–》进入hive:add jar /home/joker-717/jars/架包名)

1)类继承 udf

2)重写 evaluate

返回值 evaluate(参数){

}

3)打jar包

4)上传到hive所在服务器

5)将jar包添加到hive的classpath下

add jar path;

list jars;

6)创建临时函数

craete temporary function funname as “”;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值