测试数据
hive> select * from col_lie limit 10; OK col_lie.user_id col_lie.order_id 104399 1715131 104399 2105395 104399 1758844 104399 981085 104399 2444143 104399 1458638 104399 968412 104400 1609001 104400 2986088 104400 1795054
把相同user_id的order_id按照逗号转为一行
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
总结
使用函数:concat_ws(',',collect_set(column))
说明:collect_list 不去重,collect_set 去重。 column的数据类型要求是string