看了一些人写的hive数组和string互转的文章简直就是坑爹胡扯, 所以还是写一个靠谱点的例子
数组转string
使用函数:concat_ws(',',collect_set(column))
说明:collect_list 不去重,collect_set 去重。collect_list ,collect_set 产生的是一个数组对象 ["grey","black"] , concat_ws 把数组对象转成 字符串 , column的数据类型要求是string
select user_id,
concat_ws(',',collect_list(order_id)) as order_value from col_lie
group by user_id
limit 10;
//结果(简写)
user_id order_value
104399 1715131,2105395,1758844,981085,2444143
srign 转数组
split('a,b,c,d,e,f,g',',')
问为啥要把数组转string ?
select
concat( '(\'' , concat_ws('\',\'' ,(collect_set( 问题字段 ) )) ,'\')' )
from
查询
一个简单的使用就是 用上面这一段排查明细的时候 是不是拷贝出结果
然后给到别人就是 一个 ('问题值1','问题值2') 的样式, 需要排查问题的人直接就贴到自己的mysql 或者其他上面 一个 in后面跟上 就行了
还有就是其他具体业务运用了, 这个也有拼接好给别人直接展示的
版权归原作者 不許人間見白頭 所有, 如有侵权,请联系我们删除。