hive中的contact,concat_ws,collect_set(),explode实现行列互转

hive工作中用到的一些拼接函数
1. concat(string s1, string s2, string s3)
这个函数能够把字符串类型的数据连接起来,连接的某个元素可以是列值。
如 concat( aa, ':', bb) 就相当于把aa列和bb列用冒号连接起来了,aa:bb。


2. cast 
用法:cast(value as type)
功能:将某个列的值显示的转化为某个类型
例子:cast(age as string ) 将int类型的数据转化为了String类型


3. concat_ws(seperator, string s1, string s2...)
功能:制定分隔符将多个字符串连接起来,实现“行转列
例子:常常结合group bycollect_set使用

有表结构a string , b string , c int
数据为
c d 1
c d 2
c d 3

想要得到


c d 1,2,3

语句如下

select a, b, concat_ws(',' , collect_set(cast(c as string)))
from table group by a,b;

4. 上述用的到的 collect_set 函数,有两个作用,第一个是去重,去除group by后的重复元素,
第二个是形成一个集合,将group by后属于同一组的第三列集合起来成为一个集合。与contact_ws
结合使用就是将这些元素以逗号分隔形成字符串。

5.explode(col_name) 
将hive中一列array/map转成一行,即“列转行”,上述3反过来。
用法:

select a,b,explode(split(c,',')) from table

  • 19
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Hivecontact是一个API的方法或者函数。根据引用所提到的目录,可能存在一些与contact相关的方法,如client.new_contact、client.update_contact、client.contacts_tags和client.contacts_subscribers。这些方法可能用于处理联系人信息和标签。除此之外,引用和引用也提到了一个concat函数,它可以用来拼接字符串类型的数据。例如,concat(aa, ':', bb)可以将aa列和bb列用冒号连接起来,形成aa:bb的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [wix-hive-ruby:Wix Hive API 的 Ruby 接口](https://download.csdn.net/download/weixin_42133415/19644398)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [hivecontact,concat_ws,collect_set(),explode实现行列互转](https://blog.csdn.net/jsbylibo/article/details/82859168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [hive的拼接函数contact,concat_ws,collect_set()及explode(),lateral view函数](https://blog.csdn.net/shuyun123456789/article/details/104726756)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值