hive函数转换符

204 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情

本文继续介绍关于hive函数的内容,是之前文章中有所遗漏的一些,也是日常开发中经常会用到的,下面直接上正文内容吧。

str_to_map()函数 作用:将字符串按照分隔符转换为map

常见使用方法:str_to_map()

具体功能描述:将字符串按照指定的符号分隔开,并组合成map

select str_to_map('aaa-11,bbb-22', ',', '-')
  from tmp.testtwo;
​
​
>> {"bbb":"22","aaa":"11"}

顺带讲一讲其他的转换作用的函数,在日常开发中经常会用到转换的处理,比如日期格式的转换,是转换为年月日格式或者是转换为年月日时分秒的格式,或者是类型转换的处理,比如此处需要的是bigint的类型,当前字段的类型是string,就需要通过转换来实现,不要想着有什么便捷方式,老老实实转换才是王道。

下面介绍一下时间日期的转换和类型转换,基本可以涵盖开发中的百分之八十左右的转换需要了。

data_format函数

常见使用方法: date_format(date/timestamp/string ts, string fmt)

具体功能描述: 将时间、日期、字符串,转换为指定的字符串格式,如果是要转换为日期的字符串,一定要注意区分大小写。


select data_format('2022-01-01 10:00:00' ,'yyyyMMdd')  as test_date
​
select data_format('2022-01-01 10:00:00:222' ,'yyyyMMdd HH:mm:ss')  as test_date
​
​

第二个就是类型转换的函数

cast()函数

常见使用方法: cast(label as <new_type>)

具体功能描述: 将参数转换为指定的数据类型,这里可以任意转换,当然肯定也有转换失败的情况,如果转换失败就会返回null,也可以在前置增加为null的判断,赋予一下默认值。

select cast('jaskdals' as string) -- 将jaskdals 内容转换为string的类型
​
select cast('123' as bigint) -- 将123转换为bigint的类型
​
select  nvl(cast('and' as double) is null,0)  -- 将and转换为double的类型,转换失败默认值为0
​
​