hive函数

字符函数
1.concat连接字符函数
作用:用于连接表字段的值
select concat(‘ab’,’cd’,’ed’) ==> abcdef
2.instr 返回字符串中子字符串第一次出现的位置,没有返回0
作用:可以判断字段的值是否包含某个字符等 类似contains
与locate函数效果重复
select instr(‘abcdefcd’,’cd’) ==> 3
3.length 字符串中字符个数
作用:计算字段本身的字符个数 ??还是字段的值?
select length(‘abcd’) ==> 4
4.locate 定位,类似instr,多一个从哪开始搜索的功能
作用未知
select locate(‘a’,’adfga’) ==>1
select locate(‘a’,’adfga’,4) ==>5(从指定位置开始查找)
5.upper/lower 大小写转换
作用:用于字符转换大小写,比如字段中又有大写又有小写,作为where的条件时会比较麻烦
select upper(‘abcd’) ==>ABCD
select lower(‘ABCD’) ==>abcd
6.regexp_replace 正则替换 (注意:此处的正则底层是java,转译需要双\)
作用:替换字段值的部分
select regexp_replace(‘2020-12-31 12:00:11.323’,’\…’,’’) ==> 2020-12-31 12:00:11
7.regexp_extract 正则截取
作用:截取字段值的部分
select regexp_extract(‘2020-12-31 13:24:56.001’,’([0-9]{4}-[0-9]{1,2}-[0-9]{1,2}) ([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})(\…
)’,0) ==> 2020-12-31 13:24:56.001
select regexp_extract(‘2020-12-31 13:24:56.001’,’([0-9]{4}-[0-9]{1,2}-[0-9]{1,2}) ([0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})(\…*)’,1) ==> 2020-12-31
………

注:正则的四大功能中,匹配和截取需要写出完整字符串的正则,而查找和替换只要写出需要的那部分正则

8.split 分隔
作用:截取字段值的部分
select split(‘1995-5-6 13:24:56.234’,’\.’)[0] ==>1995-5-6 13:24:56
9.substring 截取
作用:截取字段值的部分
select substring(‘2020-12-31 1:0:23’,1,7) ==>2020-12
10.trim 去除前后空格 ltrim 左空格 rtrim 右空格
作用:去除前后空格的影响
select trim(‘ abc ’) ==> abc
11.srt_to_map map类型字符串转josn格式
12.encode 解码格式
作用:选择解码格式
select encode(‘你好’,’utf8’) ==> 你好
13.reverse 反转字符串
作用:反转字段,用的很少
select reverse(‘你好’) ==>好你
14.repeat 重复字符
作用:重复字段,用的很少
select repeat(‘abc’,3); ==>abcabcabc
15.format_number 千分位分隔符
作用:会计银行数据可能会用到
select format_number(‘12312124.2325’,2) ==>12,312,124.23
注:后一个参数是保留多少位小数,四舍五入
16.get_json_object 取出json格式的值
作用:获取json的值
select get_json_object(‘{“name”:”zs”,”age”:”40”}’,’ . n a m e ’ ) = = > z s 不 能 处 理 既 有 j s o n 格 式 , 又 有 其 他 格 式 的 , 如 s e l e c t g e t j s o n o b j e c t ( ‘ a b c ∣ “ n a m e ” : ” z s ” , ” a g e ” : ” 40 ” ∣ e f d ’ , ’ .name’) ==>zs 不能处理既有json格式,又有其他格式的,如 select get_json_object(‘abc|{“name”:”zs”,”age”:”40”}|efd’,’ .name)==>zsjsonselectgetjsonobject(abcname:zs,age:40efd,.name’)
17.lpad 从左填充字符串(长度超过,则截取)
作用:可以用于填充身份证,密码等
select lpad(‘acbw’,6,’’) ==> **acbw
select lpad(‘acbw’,2,’
’) ==>ac
18.parse_url 取出网址的参数,网站地址等
select parse_url(‘http://www.taobao.com?userid=2&v=2’,’HOST’) ==> www.taobao.com
select parse_url(‘http://www.taobao.com?userid=2&v=2’,’QUERY’) ==> userid=2&v=2
19.sentences 将字符变为数组
作用未知
select sentences(‘hello world ! how are you’) ==> [[“hello”,“ff”],[“how”,“are”,“you”]]
20.initcap 每个字母的首字母变为大写
作用未知
select initcap(‘hello world how are you’) ==> Hello World How Are You

数学函数
1.round 四舍五入
2.floor向下取整
3.ceil 向上取整
4.rand 随机函数
5.pow 幂次方
6.sqrt 开根
7.pmod 求模
8. md5 加密
作用:给密码字段的值加密
select md5(‘avf’) ==>4f6dcac1b52caf39bbd259fab09d9dbd

类型转换函数
1.cast 转换类型 如果转换失败返回null
作用:转型字段,如:表中的string类型数据与int类型数据比较

日期函数
1.from_unixtime 转换时间戳到年月日时分秒的格式

2.unix_timstamp(‘1999-9-9 1:0:34’) 获取时间戳,时间必须要精确到秒,如果不写就是当前时间 == current_timestamp

3.to_date 返回年月日部分

4.year/month/day 返回年/月/日 (月日在单独使用时,一定要注意是不是同一年)

5.hour/minute/second
6.weekofyear 返回本年的第几周;
7.current_date() 返回当前日期(年月日)
8.datediff 日期之间的差值

9.date_add 加日期

10.date_sub 减日期

11.add_months

12.last _day 返回本月最后一天

13.next_day 从指定时间开始,下周几的日期

14.trunc 截取年/月等,并保持之后月/日的格式等为1 (不能截取日)

15.months_between 月份相减

16.date_format 获取年/月/日/时/分/秒的任意组合
转化日期为指定格式
select date_format(current_date(),’yyyyMM’) ==> 202006

集合函数

1.size 获取数组长度(这里不能用length,length只能用于字符串长度)

条件函数

1.if

2.nvl ==> if null(mysql)

2.coalesce 返回第一个非空值

3.case…when…then ==> switch…case.

4.isnull

5.explode

6.stack

三、处理字符串3种方法(很重要,背)
1.substring

2.split

3.正则匹配

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值