hive中实现行转列_Hive常用函数之行转列和列转行函数

一、行转列函数

将类似于下面的形式:

A

B

C

转化为类似于下面的形式:

A B C

即将多行转化为一行,排在一行了,就成了一列

concat函数:select concat('A','B','C');

concat_ws函数:select concat_ws('|',array('A','B','C'));

collect_set()函数

说到explode()函数就不得不说一下collect_set()函数。collect_set(col)函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。例如,要统计每种no下的score,直接对no分组后对score进行collect_set操作,如下:

select no,collect_set(score) from tablss group by no;

这样,就实现了将列转行的功效,但是注意只限同列基本数据类型,函数只能接受一列参数。

二、列转行函数:EXPLODE,LATERAL VIEW

把类似于

A , B , C

转化为

A

B

C

explode函数:select explode(array('A','B','C'));

select explode(map('liubei','18','zhangfei','19'));

补充:split函数

hive> select split('ab_cd_ef', '\_')[0] from test;

ab

hive> select split('ab?cd_ef', '\\?')[0] from test;

ab

结合LATERAL VIEW使用参考:https://blog.csdn.net/lixinkuan328/article/details/102187152

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值