看了一些人写的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后面跟上 就行了
还有就是其他具体业务运用了, 这个也有拼接好给别人直接展示的