Hive中的常用内置函数

Hive中的常用内置函数

1.空字段赋值
相比较mysql的ifnull函数,hive内置了nvl()函数用于给空字段赋值
用法:select nvl(列名, A);
解释:给该列中为null的值赋A值。
2.时间类
(1)获取系统当前时间戳ts:unix_timestamp(),该函数一般结合from_unixtime(ts[, string format])函数使用。
(2)格式化时间:date_format('2021-1-18 14:08:56', string format)注意:format多为:‘yyyy-MM-dd’
(3)时间跟天数相加:date_add('time', num),num可以为负数,与此用法相同的还有date_sub('time', num)函数
(4)两个日期相减:datediff('time1', 'time2')
3.if和case when
(1)if语法:if(布尔表达式, x, y),布尔表达式成立返回x,否则返回y。
(2)case when语法:case when 布尔表达式 then x else y end,布尔表达式成立返回x,否则返回y。此外,case when还有另外一种用法:case ... when ... then ... when ... then ... else ... end这与mysql中的用法一直,类似java中的switch …case的用法。
4.替换函数
regexp_replace(),用法示例:
regexp_replace('hello-world', '-', ','),结果为:hello,world
5.行转列函数
concat(列名1, '连接符', 列名2, '连接符', 列名3 ),该函数可以把任意类型的列拼接起来,他还有一个特殊形式:concat_ws('连接符', 列名1, 列名2, ...),注意:该函数只能连接string类型的列。
6.collect_set(列名)
把某列数据(数据类型只能为基本数据类型)变成一个array类型的字段
7.列转行函数/炸裂函数 explode(列名)
该函数列的类型为复杂数据类型(array、map、struct),且多与lateral view连用。特别说明,该函数把某列"炸"成了一张表,语法:

select xxx, 列别名
from 表名 lateral view explode(列名) 表别名 as 列别名;

授人以鱼不如授人以渔,如何查看hive中有哪些内置函数呢?以及怎么使用它们呢?
(1)查看hive中所有的内置函数 show functions;
(2)函数的用法 desc function 函数名
(3)函数的详细用法 desc function extended 函数名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值