「Hive 进阶篇」四、HQL 高级巧用
我是 Akin,这篇给大家整理了一些 hive 函数的高级用法,作为 Hive 进阶系列文章第四篇,其中有些 SQL 题目还是面试的重点考察用法,话不多说,👇🏻分享下,若觉得有帮助,可以关注公众号《大数据阶梯之路》,一同成长,持续加成大数据数仓开发相关技能点。👏🏻 关注+点赞+在看+转发 是我创作的动力。
1. 数据脱敏函数
hive 有专门的脱敏函数供我们使用,就是mask()
函数,返回值是 string 类型,默认需要脱敏的数据中大写字母就自动转换为 X,小写字母就自动转换为 x,数字就自动转换为 n,也可通过 mask()函数的参数来自定义转换格式。注意:入参也必须是string类型才不会有隐藏bug
2. hive 获取当天时间
3. hive 格式化时间数据
4. hive 获取本月第一天,本年第一天,上个月第一天,本月最后一天,下个月第一天等指标
5. datediff 日期比较函数第一个参数是结束日期,第二个是开始日期,返回结束日期减开始日期
6. hive 对 yyyy/MM/dd 格式的日期和 yyyy-MM-dd 格式的日期相互转换方案
第一种是
通过from_unixtime()+unix_timestamp()转换时间戳方式
转换第二种是
通过concat()+substr()拼接截取方式
转换,第三种是
通过regexp_replace()正则匹配方式
去掉横杠。
7. hive 的多行转多列 (重点)
方案一:利用拼接的方式构造map类型
方案二:利用if判断表达式+聚合收敛
8. hive 查找数组内是否包含某个元素
select array_contains(array<int>,某元素)
; 注意:array_contains()函数支持 int 数组或者 string 数组,不支持 bigint 数据类型的数组。
9. hive 字符串数组类型的数据转为字符串数据
select concat_ws(',',array<string>)
;
10. hive 的空处理函数
coalesce(数据字段,'自定义值') select coalesce(aaa,'空值清洗')
微信公众号超多大数据数仓学习资料,有需要可 评论区留言 or 文末访问公众号推文链接
获取原创 PDF 文档保存本地吧,学习和复习都是绝佳。
分享就到此结束了,建议收藏吸纳消化,博文不易,欢迎👏🏻点赞+转发
版权声明: 本文为 InfoQ 作者【大数据阶梯之路】的原创文章。
原文链接:【http://xie.infoq.cn/article/636f0f60840aaabbbfd81a3ed】。文章转载请联系作者。
评论