hive 去重 字符串_hive常用函数

hive函数

其他常用

1.NVL: 空字段赋值

给值为NULL的数据赋值,它的格式是NVL( string1, replace_with)。它的功能是如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。

2.concat: 字符串拼接

可以在参数中传入多个string类型的字符串,一旦有一个参数为null,返回Null!Tips:最好已经做好数据清洗,使得没有null数据

3.concat_ws:

使用指定的分隔符完成字符串拼接!

concat_ws(分隔符,[string | array]+)

4. collect_set:

collect_set(列名) : 将此列的多行记录合并为一个set集合,去重

5. collect_list:

collect_list(列名) : 将此列的多行记录合并为一个set集合,不去重

6. explode:

explode(列名)

参数只能是array或map!

将array类型参数转为1列N行

将map类型参数转为2列N行

列转行: 1列1行 转为 1列N行注意:explode函数属于UDTF,UDTF在使用时,不能和其他表达式一起出现在select子句后!

只能单独出现在select子句后!案例:

movie_info.movie | movie_info.category

《疑犯追踪》 | ["悬疑","动作","科幻","剧情"]

期望结果:

《疑犯追踪》 悬疑

《疑犯追踪》 动作

《疑犯追踪》 科幻

《疑犯追踪》 剧情

《Lie to me》 悬疑

-------------不允许----------

select movie,explode(category)

from movie_info

--------不符合要求--------------

select movie,col1

from movie_info

join

(select explode(category) col1

from movie_info) tmp

处理:

①先explode

②需要将炸裂后的1列N行,在逻辑上依然视作1列1行,实际是1列N行,和movie进行笛卡尔集

这个操作在hive中称为侧写(lateral VIEW)

Lateral view explode() 临时表名 as 临时列名

select movie,col1

from movie_info Lateral view explode(category) tmp1 as col1

Tips:select后面只能写分组后的字段和聚集函数!聚集函数: 多进一出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值