hive行转列、列转行真题解析

一、行转列

1.1、行转列需要用到的函数
  1. CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串。

    例如: concat( aa, ‘:’, bb) 就相当于把aa列和bb列用冒号连接起来了,aa:bb。

  2. CONCAT_WS(separator, str1, str2,…):CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

  3. COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。

1.2、真题实战
1.2.1、需求
user_name province city
张三 广东 广州
李四 河南 开封
王二 广东 深圳
小亮 河南 开封
小明 广东 深圳

如上面表格是hive表user_info里的数据,现在想把省份和城市一样的用户放到一起,想要的结果如下:

place users
广东,广州 张三
广东,深圳 王二|小明
河南,开封 李四|小亮
  • 18
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值