看了一些人写的hive数组和string互转的文章简直就是坑爹胡扯, 所以还是写一个靠谱点的例子

数组转string

使用函数:concat_ws(‘,’,collect_set(column))

说明:collect_list 不去重,collect_set 去重。collect_list ,collect_set产生的是一个数组对象 [“grey”,”black”] , concat_ws把数组对象转成 字符串 , column的数据类型要求是string

selectuser_id,

concat_ws(‘,’,collect_list(order_id)) asorder_value fromcol_lie

groupbyuser_id

limit 10;

//结果(简写)

user_idorder_value

1043991715131,2105395,1758844,981085,2444143

srign 转数组

 split('a,b,c,d,e,f,g',',')

问为啥要把数组转string ?

selectconcat( '(\'' , concat_ws('\',\'' ,(collect_set( 问题字段 ) )) ,'\')' )from查询

一个简单的使用就是 用上面这一段排查明细的时候 是不是拷贝出结果

然后给到别人就是 一个 (‘问题值1′,’问题值2’) 的样式, 需要排查问题的人直接就贴到自己的mysql 或者其他上面 一个 in后面跟上 就行了

还有就是其他具体业务运用了, 这个也有拼接好给别人直接展示的